Подтвердить что ты не робот

Обнаружение мобильных устройств - и планшетных устройств

В настоящее время я просматриваю код для обнаружения мобильных телефонов на PHP, что, вероятно, довольно просто.

Теперь у меня есть одна проблема - я хочу сделать возможным создание уникальных файлов вида в моей 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;
}

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

Надеюсь, я сделал свое желание ясным и надеюсь, что у вас есть какой-то вклад в этом, чтобы достичь этого.

Спасибо заранее.

4b9b3361

Ответ 2

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

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

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

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

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

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

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

Ответ 3

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

Ответ 4

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