Обнаружение мобильных устройств - и планшетных устройств
В настоящее время я смотрю на некоторый код для обнаружения мобильных телефонов с помощью PHP, что, вероятно, довольно просто.
Теперь у меня есть только одна проблема - я хочу сделать возможным создание уникальных view-файлов в моей MVC-платформе для планшетов, мобильных телефонов и веб-страниц. Поэтому мне нужно отделить планшет от остальных мобильных устройств.
В настоящее время это код, который я использую:
public function isMobile()
{
if(preg_match('/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|sagem|sharp|sie-|smartphone|sony|symbian|t-mobile|telus|up\.browser|up\.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i', $_SERVER['HTTP_USER_AGENT']))
return true;
else
return false;
}
Но этого недостаточно - единственная проверка заключается в том, является ли устройство мобильным устройством, а если нет, то это стандартно говорит платформе, что мы находимся на компьютере. Последняя часть в порядке - но я хочу разделить мобильные устройства на настоящие мобильные телефоны - и на второстепенную группу, которая должна быть планшетами.
Я надеюсь, что я ясно выразил свое желание, и я надеюсь, что у вас есть хороший вклад для достижения этой цели.
Заранее спасибо.
4 ответа
Вот класс с методами для определения каждой платформы в отдельности.
Старый вопрос, но здесь идет мое мнение относительно обнаружения мобильных устройств.
В своем вопросе вы заявляете, что хотите иметь уникальные файлы для мобильных устройств, поэтому я могу предположить, что причина этого заключается в том, чтобы представить другую версию веб-сайта для мобильных клиентов и настольных клиентов.
Этот подход в порядке до определенного момента. И эта точка называется Android. Ежедневно активируется ~1,5 миллиона устройств Android с разрешением от 320*240 до 2560*1600, что затрудняет if {} else
для каждого из них. Даже если вы попытаетесь составить список с большинством используемых устройств и нацелиться только на них, в будущем будет сложно поддерживать новое устройство.
Некоторое время назад я хотел забыть о старом методе разделения устройств на категории "мобильные" и "настольные" и создать новый метод. И этот метод заключается в "хороших" и "плохих" браузерах, основанных на возможностях браузера. Например, если браузер поддерживает локальное хранилище, оно будет в категории "хорошо".
Исходя из этого, у меня была возможность создать "базовую" версию веб-сайта, очень базовую с точки зрения пользовательского интерфейса, но которая будет работать кросс-браузерно. Эта базовая версия веб-сайта будет представлять один и тот же контент (потому что это важно в конце дня) на всех устройствах, будет очень небольшого размера (меньше ресурсов, меньше HTML) и будет расширяться на основе возможностей браузера на клиенте. боковая сторона.
Таким образом, в конечном итоге вы получите веб-сайт с очень малой занимаемой площадью (размер html и ресурсы), который выглядит нормально для всех браузеров и будет поддерживать любое новое устройство, которое появится на рынке без каких-либо изменений, будет быстро загружаться даже на плохие соединения и которые могут быть расширены на стороне клиента на основе возможностей браузера.
Вы даже можете обогатить веб-страницу в зависимости от размера устройства: если браузер сообщает о большом экране, вы можете добавить больше ресурсов, больше рекламы и сделать веб-страницу более красивой; если отчеты браузера отображаются на маленьком экране, вы оставляете все как есть.
Mobile_Detect - это легкий PHP-класс для обнаружения мобильных устройств (включая планшеты). Он использует строку User-Agent в сочетании с определенными заголовками HTTP для обнаружения мобильной среды. - Читать дальше http://mobiledetect.net/
Вы также можете использовать более комплексное решение, такое как WURFL Cloud, которое представляет собой сервис, который обнаруживает возможности мобильных устройств, например is_mobile и is_tablet. Существует бесплатный план для сайтов с низким трафиком: http://www.scientiamobile.com/cloud