На днях встала задача о разработке мобильной версии сайта. Я сразу столкнулся с вопросом как сделать мобильную версию сайта? Как понять, что пользователь зашёл с мобильного устройства? Как это отследить? Решение пришло очень быстро, спасибо Яндексу (:
Весь метод построен на технологии от Яндекса — Детектор. Яндекс предоставляет API, благодаря которому мы легко можем сделать запрос и получить ответ с какого устройства зашёл пользователь на наш сайт. Делается всё очень просто.
Сам детектор находится вот тут — tech.yandex.ru/detector (не актуально). Там же и описание API с примерами. Но я не буду тебя мучать и на пальцах просто объясню как и что делать.
Первым делом нам нужна информация о двух штуках — об UserAgent и о WapProfile. Попробуем получить её, если не получится просто вернём null:
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null;
$wapProfile = isset($_SERVER['HTTP_X_WAP_PROFILE']) ? $_SERVER['HTTP_X_WAP_PROFILE'] : null;
Затем необходимо построить запрос:
$query = http_build_query(array(
'user-agent' => $userAgent,
'wap-profile' => $wapProfile,
));
Ну и теперь надо сделать запрос и получить ответ, а ответ от сервера мы получаем в XML, поэтому делаем вот так:
$xml = simplexml_load_file($url . '?' . $query);
Всё готово. Осталось понять, пользователь зашёл с компьютера или мобильного устройства. Я делаю хитрость и проверяю чтобы ответ не был равен ‘Unknown user agent and wap profile’. Такой ответ 100% значит, что заходят не с мобильного устройства, ну или с неизвестного какого-то устройства. А если устройство неизвестное, то лучше показать полную версию сайта.
if (($xml != 'Unknown user agent and wap profile')) {
// тут делаем всё что хотим, например редиректим на поддомен с мобильной версией сайта, или подключаем мобильную тему.
}
Вот такие пироги, всё очень просто (:
Один комментарий на «“Мобильная версия сайта. Как узнать, что зашли с мобильного устройства?”»
Здравствуйте!