Обнаружение мобильного или планшетного устройства

Цель для меня – иметь мобильный сайт (для мобильных телефонов и планшетов) и отзывчивый рабочий стол на рабочем столе, построенный на WordPress. Я хочу, чтобы самый простой способ реализовать обнаружение устройств с проверкой дурака.

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

У меня есть этот один лайнер, который будет обнаруживать сенсорные устройства и перенаправлять на другую страницу, но кажется, что это слишком просто, чтобы быть проверенным методом обнаружения устройств. Как это доказательство? Будет ли он работать на устройствах Windows и Android, а также на iOS?

Это мой первый раз, когда я делаю такой сайт и не уверен, насколько это будет эффективно:

<!-- Redirect to the mobile index page if we're on a touch device --> <script>if( 'ontouchstart' in window ) window.location = 'mobile.html';</script> 

Вы можете использовать библиотеку mdetect (Mobile detect), чтобы сделать это за вас. Он написан на нескольких языках и будет обнаруживать Windows, Android, iOS и т. Д. Обязательно прочитайте документацию.

  • Версия PHP
  • Версия JavaScript

Обратите внимание, что версия JavaScript содержит это предупреждение:

 // WARNING: // These JavaScript-based device detection features may ONLY work // for the newest generation of smartphones, such as the iPhone, // Android and Palm WebOS devices. // These device detection features may NOT work for older smartphones // which had poor support for JavaScript, including // older BlackBerry, PalmOS, and Windows Mobile devices. // Additionally, because JavaScript support is extremely poor among // 'feature phones', these features may not work at all on such devices. // For better results, consider using a server-based version of this code, // such as Java, APS.NET, PHP, or Ruby. 

Этот код будет прекрасно работать практически для любого устройства с сенсорным экраном.

Для Mobile Detection на PHP я всегда использовал переменную $ _SERVER ['HTTP_USER_AGENT']. Я использую функцию ниже, чтобы иметь очень подробный контроль над тем, кто получает мобильный сайт (конкретные устройства, которые я хочу поддерживать). Просто добавьте useragents в массив (например, «Ipad»), чтобы добавить дополнительные устройства.

 function detectmobile(){ $agent = $_SERVER['HTTP_USER_AGENT']; $useragents = array ( "iPhone", "iPod", "Android", "blackberry9500", "blackberry9530", "blackberry9520", "blackberry9550", "blackberry9800", "webOS" ); $result = false; foreach ( $useragents as $useragent ) { if (preg_match("/".$useragent."/i",$agent)){ $result = true; } } return $result; } if (detectmobile() == true) { wp_redirect('http://pageyouwwanttoredirectto'); } 

Использование: вы можете использовать приведенный выше код в файле functions.php темы wordpress.