Подтвердить что ты не робот

Request.Browser.IsMobileDevice = false для Android, почему?

У меня есть samsung galaxy s2, в коде С# он показывает Request.Browser.IsMobileDevice = false, но я хочу использовать мобильную версию для своего приложения. Как иметь возможность показывать мобильную версию моего веб-сайта для устройств Android?

Спасибо, так много.

Сергей.

4b9b3361

Ответ 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>