Request.Browser.IsMobileDevice = false для Android, почему?
У меня есть samsung galaxy s2, в коде С# он показывает Request.Browser.IsMobileDevice = false, но я хочу использовать мобильную версию для своего приложения. Как иметь возможность показывать мобильную версию моего веб-сайта для устройств Android?
Спасибо, так много.
Сергей.
Ответы
Ответ 1
Вы можете проверить User-Agent
HTTP-заголовок.
Пользовательский агент - это идентификатор, который (как правило) содержит имя и версию браузера, а также имя и версию платформы или ОС, на которых работает браузер. Текущий стандарт состоит в том, чтобы разделить его на элементы, разделенные пробелами, но на самом деле поле User-Agent
может быть установлено на все.
Пример:
Mozilla/5.0 Windows NT 6.1 WOW64 rv 8.0 Gecko/20100101 Firefox/8.0
Это показывает, что я запускаю Firefox 8.0 (который использует Mozilla renderer v5.0 и Gecko layout engine release 2010/01/01) в 64-разрядной версии Windows NT 6.1 Release (это Windows 7).
Вы можете получить дополнительную информацию о строках агента пользователя здесь: http://www.useragentstring.com/
Ответ 2
Используйте 51Degrees.mobi из NuGet для установки с одним кликом с нулевой конфигурацией, которая исправит эту проблему.
Ответ 3
Вы можете создать файл в App_Browsers с регулярным выражением для идентификации браузера, следующий для Firefox в Android:
<browsers>
<!--Mozilla/5.0 (Android 5.0; Mobile; rv:44.0) Gecko/44.0 Firefox/44.0-->
<browser id="FirefoxMobile" parentID="firefox3plus">
<identification>
<userAgent match="Mozilla.+\(Android.+Mobile.*\)" />
</identification>
<capabilities>
<capability name="isMobileDevice" value="true" />
</capabilities>
</browser>
</browsers>
Ответ 4
Полезно проверить, является ли устройство Android.
Есть сообщение с кодом:
http://dbarrowstechblog.blogspot.hk/2011/02/requestbrowserismobiledevice.html