Я прочитал много статей и искал решения для обнаружения мобильных устройств. Фактически, натолкнулся на https://github.com/serbanghita/mobile-detect, но это довольно массивный класс php.
Я действительно хочу очень простое решение. Я хочу определить, является ли браузер пользователя Mobile/iPad/etc или Desktop. Поэтому я хочу что-то вроде этого:
<?php
require('detector.php');
if(isMobile() === true)
{
header('mobile.php');
exit();
}
else
{
header('desktop.php');
exit();
}
?>
Требуется очень простое решение, которое я могу разместить на любой странице без установки композитора или любой инфраструктуры php.
Как это возможно?
Вы действительно пытались использовать обнаруженный вами проект. Я бы сказал, что мобильное обнаружение на стороне сервера - это огромная задача с большим количеством подробных проверок, чтобы обеспечить правильный результат.
И использование этого класса совершенно просто. В каталоге примеров:
require_once '../Mobile_Detect.php';
$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
Теперь у вас есть переменная с одним из трех значений: "планшет", "телефон" или "компьютер", и вы можете реагировать на это.
Обратите внимание, что даже если вы можете использовать эту библиотеку без Composer, она будет регулярно обновляться (как в "один раз в месяц"), потому что новые устройства выходят на рынок и должны быть обнаружены. Вам нужно будет обновить эту библиотеку в какой-то момент. Использование Composer делает это очень просто.
Если вы действительно не хотите включать этот класс в свой код, Mozilla указывает, что он "достаточно хорош" для поиска строки "mobi" в пользовательском агенте.
<?php
if (stristr($_SERVER['HTTP_USER_AGENT'],'mobi')!==FALSE) {
echo 'mobile device detected';
}
?>
Вы можете перенаправить ссылку с помощью
и в контроллере вы можете проверить
$keybord = app::get('keyboard')
if($keyboard == mobile ){
redirect ('mobile');
}else{
redirect ('desktop');
}
Я нашел эту простую строку очень надёжной и простой в использовании. Без необходимости добавлять один дополнительный класс.
if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'mobile') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'android')) {
echo "running on mobile";
}