Цель для меня – иметь мобильный сайт (для мобильных телефонов и планшетов) и отзывчивый рабочий стол на рабочем столе, построенный на 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 и т. Д. Обязательно прочитайте документацию.
Обратите внимание, что версия 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.