Редирект на мобильный сайт

Я закодировал несколько строк кода java-скрипта. Но я не уверен, правильно это или нет. Несколько месяцев назад я опубликовал десктопную версию сайта. но когда пользователь заходит через мобильный телефон (например, Android, iPhone или может быть Windows Phone), я хочу перенаправить новый путь. Вот код:

// JavaScript Document
var uAgent = navigator.userAgent.toLowerCase();

if(uAgent.indexOf("android") > -1 || uAgent.indexOf("iphone") > -1 || uAgent.indexOf("windows phone") > -1) {
    window.location = "http://website path will come here.";
}

Это правильный код?


person naresh kumar    schedule 26.09.2012    source источник
comment
Принадлежит codereview.stackexchange.com   -  person Quentin    schedule 26.09.2012
comment
stackoverflow.com/ вопросов/6666907/ возможный дубликат   -  person Chandra Sekhar Walajapet    schedule 26.09.2012


Ответы (3)


Это будет работать, но это не лучший способ сделать это по нескольким причинам:

  1. Пользователи с отключенным JavaScript не будут перенаправлены

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

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

person codebox    schedule 26.09.2012
comment
или вы можете использовать небольшую страницу шлюза, которая перенаправляет как на рабочий стол, так и на мобильную версию, когда вы уверены в пользовательском агенте, и позволяете пользователю выбирать, когда пользовательский агент неоднозначен или javascript отключен. Разрешение пользователю переключаться между обеими версиями в любое время также может быть полезно в некоторых случаях на любом устройстве. Когда ваш веб-сайт по какой-либо причине загружается очень медленно, даже пользователи настольных компьютеров могут захотеть переключиться на мобильную версию с меньшей пропускной способностью, а пользователи смартфонов могут захотеть попробовать полную версию, когда они думают, что их браузер справится с этим. - person Philipp; 26.09.2012
comment
в порядке. еще одно сомнение. в приведенном выше коде, когда я проверяю строку android, предположим, что она найдена, а uAgent — это android, тогда он будет работать на всех устройствах Android. но я хочу другое для планшетного устройства. Для планшетного устройства я хочу показать настольную версию веб-сайта. так как я это проверю. любая идея. - person naresh kumar; 26.09.2012
comment
Список пользовательских агентов для телефонов/планшетов будет постоянно меняться, если вы попытаетесь вести список самостоятельно, это потребует много работы. Я бы порекомендовал вам попытаться найти существующую структуру (см. ссылки в других ответах), которая может сделать это за вас. В качестве альтернативы вы можете написать JavaScript, который проверяет высоту/ширину экрана и принимает решение на основе этого. - person codebox; 26.09.2012

Если вам действительно нужно определить мобильный браузер (вместо создания адаптивного макета, удобного для мобильных устройств, такого как адаптивного шаблона на странице Initializr, которая просто работает в мобильных браузерах. Google — "сначала мобильные устройства" и "отзывчивый дизайн", чтобы узнать больше. примеры), затем взгляните на эти ссылки:

Существует тонна мобильных браузеров — не только iPhone, Android и Windows — поэтому, если вы собираетесь их обнаружить, вам нужно сделать это правильно. См. также jQuery Mobile, отличную мобильную платформу, которая сделает вашу жизнь проще.

person rsp    schedule 26.09.2012
comment
это отличный ресурс. но все коды сжаты. Итак, есть ли какая-либо документация о том, как использовать все это. - person naresh kumar; 26.09.2012

uAgent.indexOf("android") > -1

Android — это не просто операционная система для смартфонов. Он также работает на многих планшетах, которые легко справляются с версиями большинства веб-сайтов, оптимизированными для настольных компьютеров. Мой друг только что пожаловался, что некоторые веб-сайты показывают только мобильную версию для его GalaxyTab, хотя обычная версия будет хорошо смотреться на его 10,1-дюймовом экране.

Вы также забыли о телефонах Blackberry и Symbian.

person Philipp    schedule 26.09.2012
comment
Не только планшеты, я видел нетбуки и ноутбуки под управлением Android. - person rsp; 26.09.2012
comment
Я просто хочу для Android, iPhone и Windows Phone. Я просто экспериментирую. Кстати спасибо за ответ. - person naresh kumar; 26.09.2012