Как работает IsMobileDevice? - PullRequest
       7

Как работает IsMobileDevice?

40 голосов
/ 02 декабря 2009

MSDN позволяет легко обнаружить мобильный браузер:

if (Request.Browser["IsMobileDevice"] == "true" ) 
{
    Response.Redirect("MobileDefault.aspx");
}

На самом деле, похоже, вы также можете просто проверить Request.Browser.IsMobileDevice. Но как это на самом деле работает? У меня даже нет файла .browser ... что здесь происходит за кулисами? Существуют ли некоторые встроенные настройки по умолчанию для ASP.NET 2.0?

Ответы [ 7 ]

57 голосов
/ 02 декабря 2009

Ряд файлов * .browser поставляются с .NET:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

Среда выполнения использует регулярные выражения из файлов * .browser для сопоставления с входящей строкой User-Agent, а затем задает набор свойств на основе каждого найденного соответствия (их может быть несколько в иерархии).

Если вам нужна всесторонняя поддержка мобильных устройств, рассмотрите возможность установки MDBF, которая добавляет поддержку около 400 устройств:

http://mdbf.codeplex.com/

15 голосов
/ 02 октября 2014

Теперь, через 4 года, это еще проще

Request.Browser.IsMobileDevice
2 голосов
/ 12 октября 2010

Поскольку для большинства сайтов важен только размер экрана, а не столько его возможности (по крайней мере, когда речь идет о современных телефонах с такими вещами, как Safari и Chrome), проверка разрешения не дает максимальных результатов. смысл?

Request.Browser.ScreenPixelsHeight

и

Request.Browser.ScreenPixelsWidth
1 голос
/ 05 октября 2011

В настоящее время я понимаю, что существует только одно точное решение проблемы определения, является ли браузер мобильным, а затем определение его реальных возможностей. Это решение ScientiaMobile WURFL (http://www.scientiamobile.com)., которое по состоянию на 30 августа больше не является бесплатным для любого использования. Теперь WURFL выпускается с API-интерфейсом ASP.NET под AGPL. Хранилище данных также поставляется со специальной лицензией, которая запрещает как копирование, так и использование с API, отличными от стандартного (если только вы не приобретаете коммерческую лицензию).

Таким образом, для практических целей другие подходы, такие как 51Degrees, не могут использоваться с более поздними и будущими версиями репозитория WURFL, и это затруднит 51Degrees для обнаружения новых устройств (например, Windows Phone 7.5).

Что касается MDBF (закрытого проекта), он все еще может определять, является ли устройство мобильным (намного лучше, чем IsMobileDevice в ASP.NET). Это не совсем надежно, если говорить о свойствах устройства. Он настаивает на том, что мой HTC Desire Android имеет размер экрана 240x320, что явно неверно.

Моя компания купила лицензию WURFL, и мы абсолютно согласны с этим.

1 голос
/ 02 декабря 2009

Я бы не стал полагаться на ссылку MSDN, к сожалению, для мобильных браузеров нет единого стандарта, и многие пытаются имитировать своих немобильных аналогов. Также он вернет true, если не распознает. Смотрите эту ссылку .

0 голосов
/ 25 января 2019

Просто используйте приведенный ниже код,

if (Request.Browser.IsMobileDevice) 
{
    Response.Redirect("MobileDefault.aspx");
}
0 голосов
/ 24 июня 2015

Проблемы были решены, когда я добавил 51 градус, просто добавьте 51 градус, используя Nuget, вот и все. Подробнее здесь https://51degrees.codeplex.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...