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

Обнаружение мобильных браузеров в .NET.

Я только начинаю создавать свою первую мобильную версию рабочего стола, написанную в WebForms.

Мой текущий вопрос связан с обнаружением мобильных устройств/браузеров.

То, что я пытаюсь определить, это: а) если ваше устройство мобильно; б) какая ОС (Android/IOS/и т.д.) в случае, если мне нужно обрабатывать что-либо по-разному на основе ОС и в) какой размер экрана (для загрузки разные таблицы стилей)

4b9b3361

Ответ 1

Обнаружение типа браузера проще всего, если посмотреть на строку useragent. Ключевые слова в этой строке помогут обнаружить браузер. UserAgentString.com поддерживает подробный список строк useragent, но главное, что вам нужно искать, - это всего лишь несколько ключевых слов.

Например, слово "ежевика" появляется только при просмотре с устройства Blackberry. Похоже на iPad и iPhone. Устройства Android все показывают "android" в строке useragent, но они различают планшеты и телефоны, включив ключевое слово "mobile" для телефонов.

Здесь мы обнаруживаем настольные компьютеры, телефоны и планшеты в нашем мобильном приложении:

    public enum DeviceType
    {
        Desktop,
        Tablet,
        Phone
    }

    public static DeviceType UserAgentToDeviceType(string userAgent)
    {
        if (userAgent.ToLowerInvariant().Contains("blackberry"))
            return DeviceType.Phone;

        if (userAgent.ToLowerInvariant().Contains("iphone"))
            return DeviceType.Phone;

        if (userAgent.ToLowerInvariant().Contains("ipad"))
            return DeviceType.Tablet;

        if (userAgent.ToLowerInvariant().Contains("android"))
        {
            if (userAgent.ToLowerInvariant().Contains("mobile"))
                return DeviceType.Phone;
            else
                return DeviceType.Tablet;
        }

        return DeviceType.Desktop;
    }

Если вы используете что-то вроде jQuery Mobile, сайт будет настроен для мобильного вида независимо от типа устройства, и он будет обрабатывать различия между механизм JavaScript на разных устройствах.

Ответ 2

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

Вместо того, чтобы обнаруживать мобильный браузер как таковой, который имеет некоторые общие черты/недостатки для браунинга браузера.

Вместо этого возьмите подход адаптивного дизайна. Я не буду вдаваться в подробности отзывчивого дизайна здесь, поскольку он выводит нас с пути. Однако то, что он может предоставить вам, - это подход, который вместо настройки всего опыта, основанного на том, что браузер обнаружен, это более тонкий метод настройки опыта, основанный на разрешениях экрана, возможностях CSS, включенном JavaScript и т.д. И т.д.

Отзывчивый дизайн - это не технология, а только набор методов, которые позволяют постепенно увеличивать опыт в зависимости от используемого браузера (мобильного браузера).

То, что чувствительный метод действительно не позволяет (или, по крайней мере, скомпрометирован), представляет собой очень драматические различия между, например, мобильная версия/настольная версия. Поскольку каждый обычно загрязняет отдельный опыт, например, html может быть скрыт на мобильной версии, но может быть загружен в фоновом режиме... но эти методы разрабатываются, например. JavaScript можно использовать для загрузки изображения с низким разрешением в мобильном браузере и с высоким разрешением на широкоэкранном мониторе.

Но вы всегда можете поместить ссылку на полностью отдельную версию для мобильных/настольных сайтов на мобильных устройствах, чтобы позволить пользователю решать как откат.

Ответ 3

WURFL - отличный ресурс для этого. Вы можете настроить нужные значения (не нужно принимать все свои аргументы). Я думаю, если вы хотите создать свое собственное решение -

1) Вы можете использовать WURFL XML 2) аргументы в соответствии с вашими потребностями 3) Используйте XML Reader, чтобы прочитать его xml и поместить значения в свою базу данных.

Таким образом, у вас может быть собственное решение. (хотя одна проблема заключается в том, что новые устройства, которые регистрируются позже в WURFL, не будут обновляться автоматически, поэтому вы должны позже обновить их самостоятельно)