Використовуємо ASP.NET 4 визначення браузера в ASP.NET 3.5, Різне, Програмування, статті

Ми оновили файли визначення браузера в ASP.NET 4, Тепер вони містять інформацію про такі браузерах та пристроях, як Google Chrome і iPhone. Ви можете використовувати файли визначення браузера і в більш ранніх версіях ASP.NET, наприклад в ASP.NET 3.5. Оновлені файли визначення інформації та інструкції з установки можуть бути знайдені тут


Зміни в файлах визначення браузера можуть викликати проблеми зворотної сумісності, якщо ви оновлюєте ASP.NET 3.5 проект до ASP.NET 4. Якщо у вас виникли такі проблеми, то у вас є можливість завантажити старий файли визначення браузера в ASP.NET додаток.


Що нового в файлах визначення браузера в ASP.NET 4


Повний список підтримуваних браузерів в нових файлах визначення ASP.NET 4 можна побачити на наступній діаграмі:



Якщо ви уважно подивитеся на структуру вище, то виявите, що були додані нові браузери такі, як Internet Explorer 8, Firefox 3.5, Google Chrome, Opera 10 і Safari 4.


Більше того, ми додали підтримку найпопулярніших мобільних браузерів: BlackBerry, iPhone, iPod і Windows Mobile (IEMobile). Мобільні пристрої підсвічені в діаграмі фіолетовим кольором. Для поліпшення продуктивність були прибрані застарілі браузери для стільникових і мобільних пристроїв.


Ми так само підчистили інформацію, що міститься в файлах визначення браузера. Кілька прикладів застосування:

Are you a mobile device? 
<%=Request.Browser.IsMobileDevice %> 
 
<br> 
 
Are you an IPhone? 
<%=Request.Browser.MobileDeviceModel == “IPhone” %> 
 
<br> 
 
What version of JavaScript do you support? 
<%=Request.Browser[“javascriptversion”] %> 
 
<br> 
 
What layout engine do you use? 
<%=Request.Browser[“layoutEngine”] %>

Ось, що ми побачимо в Internet Explorer 8:



А це результат в Google Chrome:



Перевірка налаштувань браузера


Коли ви працюєте з файлами визначення браузера, дуже зручно мати можливість перевірити повернулася інформацію, коли ви запитуєте сторінку з різних браузерів. Ви можете використовувати наступний метод для отримання HttpBrowserCapabilities відповідні користувальницької рядку агента і набору заголовків браузера.

public HttpBrowserCapabilities GetBrowserCapabilities(string userAgent, NameValueCollection headers) 

   HttpBrowserCapabilities browserCaps = new HttpBrowserCapabilities(); 
   Hashtable hashtable = new Hashtable(180, StringComparer.OrdinalIgnoreCase); 
   hashtable[string.Empty] = userAgent; // The actual method uses client target 
   browserCaps.Capabilities = hashtable; 
 
   var capsFactory = new System.Web.Configuration.BrowserCapabilitiesFactory(); 
   capsFactory.ConfigureBrowserCapabilities(headers, browserCaps); 
   capsFactory.ConfigureCustomCapabilities(headers, browserCaps); 
   return browserCaps; 

В кінці поста ви знайдете посилання для завантаження простого VS 2008 проекту, Browser Definition Test, який використовує дані методи для відображення інформації про можливості для довільних рядків користувацького агента. Наприклад, якщо ви введете рядок агента для iPhone, то отримаєте наступний результат:



Додаток Browser Definition Test дозволяє вам відправити рядок агента і вивести таблицю можливостей браузера.


Файли визначення браузера містять приклад рядка агента для кажого браузера. Зараз я взяв рядок агента для iPhone з файлу iphone.browser:


Перераховуємо визначення браузерів


Деякі люди запитують, чи існує спосіб перерахувати всі визначення браузерів. Для цього потрібно скористатися рефлекции і читати приватні властивості.


Ð ¤ Ð ° Ð ¹ Ð »Ñ <Ð ¾ Ð ¿Ñ € ÐμÐ'Ðμл ÐμÐ ½ Ð ¸ Ñ Ð ± Ñ € Ð ° уР· ÐμÑ € Ð ° Ð ² Ð ¿Ð ° Ð ¿Ð º Ðμ config rowsers Ð ¿Ð ° Ñ € Ñ Ñ Ñ , Ñ Ñ Ð º Ð »Ð ° Ñ Ñ Ð ¾ Ð ¼ BrowserCapabilitesFactory. ПР¾ Ñ Ð »Ðμ Ð · Ð ° Ð ¿ÑƒÑ Ð º Ð ° Ð ¸ Ð ½ Ñ Ñ, Ñ € уР¼ ÐμÐ ½ Ñ, Ð ° aspnet_regbrowsers, Ð ² Ñ <Ð ¼ Ð ¾ Ð ¶ ÐμÑ, Ðμ Ð ¿Ñ € Ð ¾ Ñ Ð ¼ Ð ¾ Ñ, Ñ € ÐμÑ, ÑŒ Ð ¸ Ñ Ñ ... Ð ¾ Ð'Ð ½ Ñ <Ð ¹ Ð º Ð ¾ Ð 'Ð'Ð ° Ð ½ Ð ½ Ð ¾ Ð ³ Ð ¾ Ð º Ð »Ð ° Ñ Ñ Ð ° Ð ² Ð'Ð ¸ Ñ € ÐμÐ º Ñ, Ð ¾ Ñ € Ð ¸ Ð ¸ config rowser, Ð ¾ Ñ, Ð º Ñ € Ñ <Ð ² BrowserCapsFactory.cs.


Клас BrowserCapabilitiesFactoryBase містить protected властивість з ім’ям BrowserElements, яке представляє Hashtable всіх определния браузера. Ось приклад, який показується, як можна вважати і вивести ID всіх визначень браузера:

var propInfo = typeof(BrowserCapabilitiesFactory).GetProperty(“BrowserElements”, BindingFlags.NonPublic / BindingFlags.Instance); 
Hashtable browserDefinitions = (Hashtable)propInfo.GetValue(new BrowserCapabilitiesFactory(), null); 
 
foreach (var key in browserDefinitions.Keys) 

  Response.Write(“<br>” + key); 
}

Запускаємо програму в VS 2008:



У новій версії, було видалено 19 застарілих визначень.


Висновок


Оновлені файли визначення браузера в ASP.NET 4 надають більш точну інформацію про пристроях і браузерах. Якщо ви бажаєте по тестувати нові визначення браузерів з різними користувацькими агентами, тоді я рекомендую вам завантажити проект Browser Definition Test.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*