IOS рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ ASP.NET рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рд╣реА рдкреЛрд╕реНрдЯрдмреИрдХ рдСрдкрд░реЗрд╢рди


рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ рдХрд┐ рдореЗрд░реЗ iPad рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдкрд╣рд▓реА рдмрд╛рд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ред рд▓реЗрдХрд┐рди рддрдм - рдХрдИ рдХрд╛рд░реНрдп рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХрд╛рд░рдг рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдереАред рд▓реЗрдХрд┐рди рдХреЛрдб рдФрд░ рдбреАрдмреНрд░реАрдлрд┐рдВрдЧ рдХреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреВрд░реА рдЪреАрдЬ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реИред
рдмрд▓реНрдХрд┐, рдЗрд╕рдХреЗ рдлреБрд▓ рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ рд╣реИред рдЖрдкрдХрд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди iPad рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬрдм рддрдХ рдЖрдк рдЗрд╕реЗ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓реЗрддреЗред

рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереА рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП - рдЖрдк рдЖрдЧреЗ рдЬрд╛рдиреЗрдВрдЧреЗред


рдЕрдкрдиреЗ рд▓реЗрдЦ " рд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдЕрдВрддрд░ рдФрд░ iOS рдХреЗ рд▓рд┐рдП AJAX рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди " рдореЗрдВ рд╣реИрдмрд░реЙрд╕ рдорд╛рд░реНрдХрд╕ рдСрд░реЗрд▓рд┐рдпрд╕ рдиреЗ рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реЗ рд╣реА рдореБрдЦреНрдп рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рднреА рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, iOS рдкрд░ Safari рд╣рдореЗрд╢рд╛ ASP.NET рдИрд╡реЗрдВрдЯ рдкреЛрд╕реНрдЯрдмреИрдХ рдореЙрдбрд▓ рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЖрдИрдУрдПрд╕ рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ ...ред рдЬрдм рддрдХ, рдЬреЛ рднреА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд╡реЗрджрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрд╡реЗрдВрдЯ рдкреЛрд╕реНрдЯрдмреИрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧреАред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рджред рдмреЗрд╢рдХ рдпрд╣ рдмреБрд░рд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рд░реНрдп рдкрд░рд┐рджреГрд╢реНрдп рдмреЗрдХрд╛рд░ рд╣реИред
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рдШреВрдордиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдЕрджреНрднреБрдд рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИред

рдХрд╛рд░рдг

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдИрдкреИрдб, рдЖрдИрдлреЛрди рдФрд░ рдЖрдИрдкреЙрдб рдЯрдЪ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдФрд░ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рд╕реЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреВрдЬрд░рдПрдЬреЗрдВрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:


рдирд┐рд░реНрдгрдп


рдЕрдкрдиреЗ рдЧреИрд░-рдорд╛рдирдХ UserAgent рдХреЗ рдХрд╛рд░рдг, iOS рдХреЗ рд▓рд┐рдП рд╕рдлрд╛рд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рдирдИ рдкреАрдврд╝реА рдХрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ClientTarget рдкреГрд╖реНрда рдХреА рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рджреЛ рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:


OnPreInit рдореЗрдердб рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдмреЗрд╕ рдкреЗрдЬ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ:

protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1) { this.ClientTarget = "uplevel"; } } 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА AppleWebKit- рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдФрд░ UserAgent рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░


рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛рдлреА рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 1.1 рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рдВрд╕реНрдХрд░рдг 4 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рд╕рдХрддреА рд╣реИ:
рдкреГрд╖реНрда рдПрдХ async рдкреЛрд╕реНрдЯрдмреИрдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди ScriptManager.SupportsPartialRendering рд╕рдВрдкрддреНрддрд┐ рдЭреВрдареА рдкрд░ рд╕реЗрдЯ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕реА async рдкреЛрд╕реНрдЯрдмреИрдХ рдХреЗ рджреМрд░рд╛рди рд╕рдВрдкрддреНрддрд┐ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рд╣реИред


рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ UserAgent рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдХрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ web.config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - 64 рд╡рд░реНрдгреЛрдВ рддрдХ:
  <browserCaps userAgentCacheKeyLength="64" /> 

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 256 рд╡рд░реНрдгреЛрдВ рддрдХред
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ ред



рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рд╕рдлрд╛рд░реА рдореЛрдб рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╕рд╛рд╣рд┐рддреНрдп рдФрд░ рд╕реНрд░реЛрдд


Source: https://habr.com/ru/post/In148239/


All Articles