Как я могу определить, просматривает ли пользователь мой веб-сайт через мобильный веб-браузер, чтобы я мог автоматически определять и отображать соответствующую версию своего веб-сайта?
291
Как я могу определить, просматривает ли пользователь мой веб-сайт через мобильный веб-браузер, чтобы я мог автоматически определять и отображать соответствующую версию своего веб-сайта?
Ответы:
Да, чтение заголовка User-Agent поможет.
Есть некоторые списки из там известных мобильных агентов пользователей , так что вам не нужно начинать с нуля. Когда я должен был это сделать, я создал базу данных известных пользовательских агентов и сохранил неизвестные по мере их обнаружения для проверки, а затем вручную выяснил, кто они. Эта последняя вещь может быть излишней в некоторых случаях.
Если вы хотите сделать это на уровне Apache, вы можете создать скрипт, который периодически генерирует набор правил перезаписи, проверяя пользовательский агент (или просто один раз и забывая о новых пользовательских агентах, или один раз в месяц, в зависимости от того, что подходит вашему случаю), например
который, например, переместит запросы на http: //domain/index.html на http: //domain/mobile/index.html
Если вам не нравится, когда скрипт периодически воссоздает файл htaccess, вы можете написать модуль, который проверяет пользовательский агент (я не нашел уже созданного, но нашел этот особенно подходящий пример ) и получить пользовательские агенты. с некоторых сайтов, чтобы обновить их. Тогда вы можете усложнить подход столько, сколько захотите, но я думаю, что в вашем случае предыдущий подход был бы нормальным.
источник
Есть сценарии с открытым исходным кодом на Detect Mobile Browser которые делают это на Apache, ASP, ColdFusion, JavaScript и PHP.
источник
Просто мысль, но что, если вы решили эту проблему с противоположной стороны? Вместо того, чтобы определять, какие браузеры являются мобильными, почему бы не определить, какие браузеры не являются? Затем код вашего сайта по умолчанию для мобильной версии и перенаправить на стандартную версию. При взгляде на мобильный браузер есть две основные возможности. Либо у него есть поддержка javascript, либо нет. Так что, если браузер не поддерживает Javascript, он по умолчанию будет мобильной версией. Если у него есть поддержка JavaScript, проверьте размер экрана. Все, что ниже определенного размера, также может быть мобильным браузером. Все, что больше, будет перенаправлено на ваш стандартный макет. Тогда все, что вам нужно сделать, это определить, является ли пользователь с отключенным JavaScript мобильным или нет.
Согласно W3C, количество пользователей с отключенным JavaScript было около 5%, и большинство пользователей отключили его, что означает, что они действительно знают, что делают с браузером. Они большая часть вашей аудитории? Если нет, то не беспокойтесь о них. Если так, каков худший сценарий? Эти пользователи просматривают мобильную версию вашего сайта, и это хорошо.
источник
Вот как я делаю это в JavaScript:
См. Пример на www.tablemaker.net/test/mobile.html, где он утраивает размер шрифта на мобильных телефонах.
источник
Мой любимый механизм обнаружения мобильных браузеров - WURFL . Он часто обновляется и работает со всеми основными платформами программирования / языка.
источник
Рассматривали ли вы использование медиа-запросов css3? В большинстве случаев вы можете применять некоторые стили CSS специально для целевого устройства, не создавая отдельную мобильную версию сайта.
Вы можете установить ширину по своему усмотрению, но 1025 будет ловить iPad в альбомной ориентации.
Вы также захотите добавить следующий метатег к своей голове:
Ознакомьтесь с этой статьей на HTML5 Rocks для некоторых хороших примеров
источник
для Android, IPhone, IPAD, Blackberry, PALM, WINDOWS CE, PALM
источник
Файл браузера для мобильных устройств - отличный способ обнаружить мобильные (и другие) рекламные ролики для проектов ASP.NET: http://mdbf.codeplex.com/
источник
Вы можете просто обнаруживать мобильные клиенты
navigator.userAgent
и загружать альтернативные сценарии в зависимости от типа обнаруженного клиента:источник
Вы можете проверить строку User-Agent. В JavaScript это действительно просто, это просто свойство объекта навигатора.
Вы можете проверить, если устройство iPhone или Blackberry в JS с чем-то вроде
если isIphone истина, вы заходите на сайт с Iphone, если isBlackBerry вы заходите на сайт с Blackberry.
Вы можете использовать плагин UserAgent Switcher для Firefox, чтобы проверить это.
Если вы также заинтересованы, возможно, стоит проверить мой скрипт "redirection_mobile.js", размещенный на github здесь https://github.com/sebarmeli/JS-Redirection-Mobile-Site, и вы можете прочитать более подробную информацию в одном из моя статья здесь:
http://blog.sebarmeli.com/2010/11/02/how-to-redirect-your-site-to-a-mobile-version-through-javascript/
источник
Этот пример работает в asp.net
источник
Вы не сказали, какой язык вы используете. Если это Perl, то это тривиально:
источник
Да, пользовательский агент используется для обнаружения мобильных браузеров. Есть много бесплатных скриптов, доступных для проверки этого. Вот один из таких php-кодов, который поможет вам перенаправить мобильных пользователей на другой сайт.
источник
Я поместил это демо со сценариями и примерами, включенными вместе:
http://www.mlynn.org/2010/06/mobile-device-detection-and-redirection-with-php/
В этом примере используются функции php для обнаружения пользовательского агента и предлагается дополнительное преимущество, позволяющее пользователям указывать предпочтения для версии сайта, которая обычно не будет использоваться по умолчанию в зависимости от их браузера или типа устройства. Это делается с помощью куки-файлов (поддерживается с помощью php на стороне сервера, в отличие от javascript.)
Не забудьте проверить ссылку на скачивание в статье для примеров.
Надеемся, вам понравится!
источник
MobileESP имеет хуки PHP, Java, APS.NET (C #), Ruby и JavaScript. у него также есть лицензия Apache 2, поэтому она бесплатна для коммерческого использования. Ключевым для меня является то, что он определяет только браузеры и платформы, а не размеры экрана и другие метрики, что делает его небольшим.
источник
Существует новое решение с использованием Zend Framework. Начните со ссылки на Zend_HTTP_UserAgent:
http://framework.zend.com/manual/en/zend.http.html
источник