Сегмент интернет-пользователей с мобильными устройствами продолжает расти, и связано это в первую очередь с процессом «насыщения» рынка мобильными устройствами по всему миру. Практически каждое такое устройство способно подключаться у интернету, а значит неизбежно становиться частью него. Таким образом, на каждый интернет ресурс приходиться какая-то доля посетителей с мобильных устройств. Определение устройства с которого зашел пользователь остается актуальной темой. Пример реализации определения мобильного устройства ранее уже рассматривалась в нашем блоге, в этом посту мы рассмотрим другое решение для этой же задачи.
Существует такой класс под названием Mobile Detect, определение устройства так же происходит по HTTP заголовку User-Agent, проект опубликовали на гитхабе. Удобство в том, что его дорабатывают, с появлением новых устройств, а так же в нем реализованы удобные методы для работы с классом.
Рассмотрим небольшой пример его использования:
// подключаем файл класса require_once 'Mobile_Detect.php'; // создаем объект класса $detect = new Mobile_Detect; // Определяем все мобильные устройства if ($detect->isMobile()){ } // Определяем все планшетные устройства if($detect->isTablet()){ } // Определяем все мобильные устройства кроме планшетов if($detect->isMobile() && !$detect->isTablet()){ } // Методы для определения специфичных платформ if($detect->isiOS()){ } if($detect->isAndroidOS()){ } // Альтернативный метод is() для проверки специфичных свойств // Внимание: данный метод находится на стадии BETA-тестирования, // и ключевые параметры возможно будут меняться $detect->is('Chrome') $detect->is('iOS') $detect->is('UC Browser') // [...] // Использование метода setUserAgent() в пакетном режиме: $userAgents = array( 'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19', 'BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103', // [...] ); foreach($userAgents as $userAgent){ $detect->setUserAgent($userAgent); $isMobile = $detect->isMobile(); $isTablet = $detect->isTablet(); // тут ваши обработки, и т.д. } // Определение версии с помощью функции version() // Внимание: данный метод находится на стадии BETA-тестирования, // и ключевые параметры возможно будут меняться $detect->version('iPad'); // 4.3 (float) $detect->version('iPhone') // 3.1 (float) $detect->version('Android'); // 2.1 (float) $detect->version('Opera Mini'); // 5.0 (float) // [...]