Определение Android устройства на PHP, JavaScript, htaccess


С развитием мобильных устройств, вебмастера все больше уделяют времени разработке именно для портативных устройств. Хороший сайт должен выглядеть одинаково не только в разных браузерах, но и корректно на разных устройствах. Поэтому важно определять тип клиента и вносить некоторые изменение в структуру сайта, конкретно для каждого из них.

Определение Android устройства

Мы уже рассматривали, как определить пользователей iPad, iPhone на PHP. Сегодня мы научимся определять Android клиент разными способами. То есть с помощью JavaScript, PHP или .htaccess. Почему именно так?

Порой бывает необходимо только подгрузить нужный CSS файл, для этого можно обойтись JavaScript определением клиента «Android».

Если нужно больше… перенаправить на поддомен, или другой URL, тогда подойдет PHP или .htaccess вариант.

Помните! некоторым пользователям не по душе, когда их «посылают» на разные домены.

JavaScript

Поиск строки UserAgent, является наиболее быстрым методом определения Android с помощью JS.

var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
  // Делаем что-то, если это андроид!
  // Или перенаправим на андроид сайт
  window.location = 'http://android.site.ru';
}

PHP

Опять, тот же UserAgent, только используем функцию strstr, для поиска слова Android:

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'android') !== false) { // && stripos($ua,'mobile') !== false) {
  header('Location: http://android.site.ru');
  exit();
}

.htaccess

Мы можем использовать даже .htaccess директивы, для идентификации Android устройств.

RewriteCond %{HTTP_USER_AGENT} ^.*Android.*$
RewriteRule ^(.*)$ http://android.site.ru [R=301]

Вот и все! Теперь у вас есть три разных способа определения Android устройств! Надеюсь, эта статья была полезной и не скучной! Успехов вам в мобильной разработке!


Источник материала ...

Дальше: Сайт СДЛ, в чем разница между рядовым сайтом и сайтом для людей?


Дискуссия по теме     8 Комментариев
Добавить комментарий
Александр 21.10.2014 в 12:48
Добрый день, прочитал статью, полезно и познавательно. Интересует как можно определить агента, и после этого вывести строку или банер с предложением скачать приложение для его устройства, так будет на мой взгляд правильнее, не навязывая клиенту мобильную версию, предложить скачать приложение для его устройства. Подскажите как реализовать?
Андрей 13.02.2014 в 13:53
var isMobile = { Android: function() { return navigator.userAgent.match(/Android/i); }, BlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i); }, iOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, Opera: function() { return navigator.userAgent.match(/Opera Mini/i); }, Windows: function() { return navigator.userAgent.match(/IEMobile/i); }, any: function() { return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); } };
Борис 22.02.2013 в 10:41
Я нашел решение. Для мобильных устройств я сделал редирект при помощи http://detectmobilebrowsers.com/ здесь скрипт в javascript сохранил, указав нужны ссылки и все. Все работает) Но только теперь возник еще один глупый вопросы) Человек зашел на основной сайт и его перекинуло на посадочную мобильную функциональную страницу(аля мини сайта на javascript с адаптивным слайдшоу и прочей краткой информацией). Но внизу есть ссылка на полную версию сайта. Проблема в том, что когда человек пройдя по этой ссылке(полная версия сайта), он редиректится на мобильную страницу. Как сделать так, чтобы его не перекидывало на моб версию? Использовать GET параметр в урле, который как нить блокировал редирект?
Тарас 25.02.2013 в 12:06
В куках нужно хранить переменную о предпочитаемой пользователем версии сайта. За ссылку спасибо.
Борис 25.02.2013 в 15:10
А вы не подскажите пример, где и как это реализовано? Спасибо
Тарас 28.02.2013 в 00:20
Человека перекинуло на моб. сайт, при нажатии на ссылку перехода на норм. сайт должен выполнятся этот php код: // Устанавливаем время для хранения куков (1 месяц) $version = "normal"; $time_to_cookies = time() 3600*24*30; SetCookie("site_version", $version, $time_to_cookies, "/", "", 0); //так мы записываем переменную в куки... а получаем и проверяем так if($_COOKIE['site_version'] == "normal"){ // переадресация на нормальную версию сайта... }
Борис 20.02.2013 в 14:13
Добрый день, очень понравилось редирект с помощью javascript. Я сделал такой же для iOs. У меня вопрос, а как сделать редирект через javascript для устройств на windows phone (nokia lumia и прочее) ? Спасибо.
Тарас 21.02.2013 в 17:33
За windows phone не знаю, самому надо... если найдете решение, дайте знать.
Добавить комментарий
Просмотров: 16010