Обнаружение мобильных устройств - и планшетных устройств - PullRequest
22 голосов
/ 02 апреля 2012

В настоящее время я смотрю код для обнаружения мобильных телефонов с помощью 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 ]

33 голосов
/ 02 апреля 2012

Вот класс с методами для определения каждой платформы в отдельности.

8 голосов
/ 18 февраля 2014

Старый вопрос, но здесь мое мнение относительно обнаружения мобильных устройств.

В своем вопросе вы заявляете, что хотите иметь уникальные файлы для мобильных устройств, поэтому я могу предположить, что причина этого заключается в том, чтобы представить другую версию веб-сайта для мобильных клиентов и настольных клиентов.

Этот подход приемлем до определенного момента. И эта точка называется Android. Ежедневно активируются Android-устройства ~ 1,5 миллиона с разрешением от 320 * 240 до 2560 * 1600, что затрудняет if {} else для каждого из них. Даже если вы попытаетесь составить список с большинством используемых устройств и нацелиться только на них, в будущем будет сложно поддерживать новое устройство.

Некоторое время назад я хотел забыть о старом методе разделения устройств на категории «мобильные» и «настольные» и создать новый метод. И этот метод заключается в «хороших» и «плохих» браузерах, основанных на возможностях браузера. Например, если браузер поддерживает локальное хранилище, оно будет в категории «хорошо».

Исходя из этого, у меня была возможность создать «базовую» версию веб-сайта, очень базовую с точки зрения пользовательского интерфейса, но которая будет работать кросс-браузерно. Эта базовая версия веб-сайта будет отображать одинаковое содержимое (, потому что это важно в конце дня ) на всех устройствах, будет очень небольшим по размеру ( меньше ресурсов, меньше html ). ) и на основе возможностей браузера будет обогащаться на стороне клиента.

Таким образом, в итоге у вас будет очень маленький веб-сайт ( размер html и ресурсы ), который выглядит нормально для всех браузеров и будет поддерживать любое новое устройство, которое появится на рынке. без каких-либо изменений быстро загружается даже при плохих соединениях, что может быть расширено на стороне клиента в зависимости от возможностей браузера.

Вы можете даже обогатить веб-страницу в зависимости от размера устройства: если браузер сообщает о большом экране, вы можете добавить больше ресурсов, больше рекламы и сделать веб-страницу более красивой; если отчеты браузера отображаются на маленьком экране, оставьте его как есть.

5 голосов
/ 10 июня 2013

Mobile_Detect - это легкий PHP-класс для обнаружения мобильных устройств (включая планшеты). Он использует строку User-Agent в сочетании с определенными заголовками HTTP для обнаружения мобильной среды. - Прочитайте больше http://mobiledetect.net

0 голосов
/ 07 апреля 2012

Вы также можете использовать более комплексное решение, такое как WURFL Cloud, которое представляет собой сервис, который обнаруживает возможности мобильных устройств, например is_mobile и is_tablet. Для сайтов с низким трафиком действует бесплатный тариф: http://www.scientiamobile.com/cloud

...