Перенаправление мобильных устройств на альтернативную версию моего сайта

У нас есть альтернативная версия веб-сайт готов для мобильных устройств. Контент, который мы обслуживаем, отличается и работает хорошо.

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

мы думали об использовании ширины экрана устройства-но что произойдет, если мобильное устройство не поддерживает javascript. Как мы это учуяли ?

9 ответов


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

вы не упоминаете свою среду, но WURFL предоставляет API для Java и PHP, а также, возможно, и другие. Если нет предоставленного API, вы все еще можно использовать WURFL, но вам придется анализировать и обрабатывать XML-данные самостоятельно.


media= "handheld" не работает с современными смартфонами, такими как iphone, которые притворяются настольным браузером (использует тип экрана).

http://detectmobilebrowser.com/ Free & open source, имеет комплексный мобильный пользователь-агент проверки доступны на многих языках-javascript, php, asp.net Рубин и др.


Если вы хотите перенаправить на мобильный сайт с помощью JavaScript, я заметил, что WURFL также имеет решение, которое позволит вам выполнять обнаружение на стороне сервера с помощью JavaScript.

<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>

вы останетесь с объектом JSON, который выглядит так:

{
     "complete_device_name":"Apple iPhone 6",
     "is_mobile":true,
     "form_factor":"Smartphone"
}

вы можете использовать это:

if (WURFL.is_mobile === true) {
    window.location.replace("http://stackoverflow.com");
}

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

IMO, лучше всего перечислить пользовательский агент:здесь-это список User-Agent, который кажется довольно полным (на французском языке, к сожалению).


просто поместите это в ваш заголовок:

<script type="text/javascript">
 <!--
  if (screen.width <= 700) {
  window.location = "http://www.mobile-site.com";
  }
 //-->
</script>

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


альтернатива WURFL и Мобильный Обнаружить класс PHP для обнаружения:

  • планшет
  • мобильный
  • iOs
  • Android
  • - браузеры
  • и многое другое

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


соглашаясь с Skaffman, в другой базе данных прибора DeviceAtlas. Ты должен заплатить за это.


Если устройство не поддерживает JS, лучше рассмотреть серверное решение и WURFL API может помочь в этом направлении.

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

по этой причине я написал сценарий JS под названием " redirection_mobile.js " that определяет пользовательский агент браузера и перенаправляет на мобильную версию вашего сайта, если вы обращаетесь с мобильного устройства.

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

вы можете найти исходный код на GitHub здесь http://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/


просто:

<link rel="alternate" media="handheld" href="WEBSITE HERE">

поместите это в головной раздел.