Стандартный способ определения мобильных браузеров в веб-приложении на основе запроса http - PullRequest
56 голосов
/ 27 сентября 2008

Мы начинаем идти по пути поддержки мобильных браузеров для веб-приложения корпоративной электронной коммерции (на основе Java / Servlet). Конечно, нужно принять много решений, но мне кажется, что краеугольным камнем является способность надежно обнаруживать мобильные браузеры и принимать решения о контенте, который должен быть возвращен соответствующим образом. Существует ли стандартный способ сделать это определение (быстро) на основе http-запроса и в идеале собрать больше информации о данном браузере и устройстве, выполняющем запрос (размер экрана, возможности html и т. Д.).

Буду также признателен за любую дополнительную информацию, которая будет полезна кому-то, кто пошел по этому пути, взяв существующее крупномасштабное корпоративное веб-приложение и разработав поддержку мобильных браузеров со стороны разработки.

[править] Я, конечно, понимаю заголовок запроса, и информация о базе данных стандартных пользовательских агентов очень полезна. Для тех, кто говорит о «других» свойствах заголовка запроса, если бы вы могли включить аналогичное стандартизированное имя / ресурс значений, это было бы большой помощью.

[править] Несколько пользователей предложили решения, предусматривающие вызов по проводной связи в какой-либо веб-сервис, который будет выполнять обнаружение. Хотя я уверен, что это работает, это не очень хорошее решение для сайта электронной коммерции предприятия по двум причинам: 1) скорость. Вызов по сети для каждого запроса страницы к третьей стороне будет иметь огромные последствия для производительности. 2) зависимость / законность. Мы привязали бы время отклика нашего веб-сайта и ключевые функции к его обслуживанию, что ужасно по юридическим причинам и из-за рисков.

Ответы [ 19 ]

1 голос
/ 27 сентября 2008

Вы получите большую часть информации, такой как браузер, устройство, принятые языки, принятые форматы и т. Д., Из заголовка запроса. Упомянутый выше пользовательский агент является частью заголовка запроса.

1 голос
/ 18 октября 2011

Я не вижу его здесь, но другой вариант, который я сейчас изучаю, это www.detectmobilebrowser.com

1 голос
/ 29 февраля 2012

Самый простой способ - создать массив с обычными тегами, связанными с мобильными браузерами. По крайней мере, у большинства мобильных пользовательских агентов должно быть слово mobile, mini, nokia, java ME, android, iphone, мобильная ОС и т. Д. Если любое из них сопоставляется с пользовательским агентом с помощью php strpos, напечатайте мобильную кнопку в верхней части страницы. , Оставьте пользователя на выбор. Я люблю полный сайт, потому что мой мобильный браузер дает мне тот же опыт, за исключением того, что мне нужно увеличивать или прокручивать большую часть времени.

1 голос
/ 25 мая 2011

ОК, здесь очень простой ответ - как насчет того, чтобы позволить пользователю решать? при входе в свой аккаунт предоставьте ссылку на мобильный сайт. на мобильном сайте предоставьте ссылку «назад на основной сайт» - попробуйте www.fazolis.com на своем мобильном устройстве - они отлично справятся с этой задачей.

затем, по ссылке на мобильный сайт с сайта браузера, зарегистрируйте свой «голос» и своего агента пользователя. Вы можете создать свой собственный надежный список ВАШИХ клиентов, которым нужен мобильный сайт. Используйте это в браке для спецификации размера экрана для этих мобильных устройств, и вы можете создать довольно неплохую логику для удовлетворительного пользовательского опыта. Я НИКОГДА не публиковал бы в сетевом источнике что-то столь элементарное, как это.

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

0 голосов
/ 07 января 2015

вы можете использовать WURFL API для определения типа устройства

http://wurfl.sourceforge.net/wurfl_schema.php

или Модернизатор для определения возможностей браузера

0 голосов
/ 17 ноября 2008

вы можете использовать веб-сервис для обнаружения мобильного просмотра, например handsetdetection.com.

0 голосов
/ 15 сентября 2010

Только что натолкнулся на Обнаружение устройств и функций в мобильном Интернете со следующим содержанием:

  1. Использование обнаружения устройств и функций для улучшения взаимодействия с пользователем в мобильном Интернете
  2. Введение в обнаружение устройства
  3. Подходы к дизайну мобильного сайта
    1. Ничего не делать
    2. Предоставление общего мобильного сайта
    3. Проектирование с учетом требований к мобильности и адаптации
  4. Стратегии адаптации контента и группировки устройств
    1. Группировка устройств
    2. Адаптация контента
  5. Минимизация необходимости адаптации в первую очередь
  6. Общие подходы к обнаружению устройств
    1. Адаптация на стороне сервера
    2. Адаптация на стороне клиента
    3. Агент пользователя на стороне сервера и поиск заголовка
    4. Строка UA на стороне сервера в сочетании с поиском в базе данных устройства
    5. Обнаружение профилей пользовательских агентов (UAProf) на стороне сервера
    6. Обнаружение на основе технологии JavaScript
    7. Типы мультимедиа CSS
    8. CSS медиазапросы
  7. Дополнительные лучшие практики
    1. Перенаправление + ручная ссылка
    2. Целевая страница + ручная ссылка
  8. Пример загружаемой страницы
0 голосов
/ 15 сентября 2009

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

Конечно, много лет назад вы могли искать его по определенным строкам и догадываться, что это был Nokia или что-то в этом роде, но сейчас существует так много телефонов, и так много, которые притворяются вещами, которые не являются чем-то более сложным. нужен.

Я нашел отличный сайт по тексту ссылки , который основан на том же решении, которое MTV использует для всех своих мобильных веб-сайтов. Он ДЕЙСТВИТЕЛЬНО хорош, так как имеет независимый от устройства язык разметки, но, что более важно, он предлагает вызов веб-службы для isMobileDevice ().

Просто посмотрите в руководстве, затем «как это работает».

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

0 голосов
/ 27 сентября 2008

Вам нужно будет проверить строку агента пользователя с ранее определенным списком, как этот

...