Необходимо проверить несколько заголовков, которые клиент отправляет, такие как USER_AGENT и HTTP_ACCEPT. Выезд эта статья для всестороннего сценария обнаружения для мобильных агентов пользователя в PHP.
Другая вещь рассмотреть: Много сайтов на самом деле предложит другой URL для мобильных устройств. См. http://m.facebook.com как пример. С увеличивающейся способностью устройств в эти дни, это дает Вашим пользователям опцию. Если они находятся на устройстве, которое может на самом деле обработать полный веб-сайт приятно (использующий изменение масштаба и этажерку), то они, вероятно, стали бы симпатичными раздраженный принуждаемый к конкретному расположению.
Был бы агент пользователя в запросе давать Вам достаточно информации для принятия решения?
существует польза список агентов пользователя здесь .
Если Вы хотите, адаптируют содержимое к какому-то конкретному устройству, например, изменить размер изображений, чтобы быть шириной устройства, то можно также использовать DeviceAtlas. На основе useragent запрашивающего устройства это скажет Вам размер экрана, наряду с поддерживаемыми форматами изображения, поддерживаемыми типами разметки, максимальный размер страницы и так далее.
Для обнаружения на основе Агента пользователя используйте база данных WURFL . По крайней мере, это всесторонне и постоянно обновлено.
, Если Вы нацелены только высокопроизводительный (выход) телефоны, затем Вы, возможно, не должны обнаруживать их вообще, всего встраивают соответствующие мобильные таблицы стилей .
Самые мобильные веб-сайты используют user_agent исключительно. База данных с открытым исходным кодом функций устройств сохраняется в http://wurfl.sourceforge.net/ Используя wurlf, и на основе user_agent, можно определить физический экран и пиксельная ширина, длина и намного больше параметров, и принять решение рендеринга.
Что такое мобильное устройство? Более слабый ЦП? Более низкая пропускная способность? В действительности это имеет экран, разрешение которого ниже 320x240 и глубина цвета, ниже 24.
необходимо использовать JavaScript также. Эта ссылка даст Вам общее представление: http://www.w3schools.com/js/tryit.asp?filename=tryjs_browsermonitor
И, эта ссылка будет учить Вас, что что: http://www.w3schools.com/htmldom/dom_obj_screen.asp
Традиционно мобильные устройства были обнаружены путем сравнения заголовка Агента пользователя HTTP против списка известных мобильных строк UA. Новый подход вместо этого пытается обнаружить присутствие настольной ОС - что-либо, что, как находят, не является настольной ОС, должно затем быть мобильным.
Это приводит к намного менее ложным положительным сторонам.
Я записал сообщение с примером кода в Python здесь: http://notnotmobile.appspot.com
Вот отрывок:
import re
# Some mobile browsers which look like desktop browsers.
RE_MOBILE = {
"iphone" : re.compile("ip(hone|od)", re.I),
"winmo" : re.compile("windows\s+ce", re.I)}
RE_DESKTOP = {
"linux" : re.compile(r"linux", re.I),
"windows" : re.compile(r"windows", re.I),
"mac" : re.compile(r"os\s+(X|9)", re.I),
"solaris" : re.compile(r"solaris", re.I),
"bsd" : re.compile(r"bsd", re.I)}
# Bots that don't contain desktop OSs.
RE_BOT = re.compile(r"(spider|crawl|slurp|bot)")
def is_desktop(user_agent):
# Anything that looks like a phone isn't a desktop.
for regex in RE_PHONE.values():
if regex.search(user_agent) is not None:
return False
# Anything that looks like a desktop probably is.
for regex in RE_DESKTOP.values():
if regex.search(user_agent) is not None:
return True
# Bots get the desktop view.
if RE_BOT.search(user_agent) is not None:
return True
# Anything else is probably a phone!
return False
def get_user_agent(request):
# Some browsers put the User-Agent in a HTTP-X header
if 'HTTP_X_OPERAMINI_PHONE_UA' in request.headers:
return request.headers['HTTP_X_OPERAMINI_PHONE_UA']
elif:
# Skyfire / Bolt / other mobile browsers
...
else:
return request.headers.get('HTTP_USER_AGENT', '')
def view(request):
user_agent = get_user_agent(request)
if is_desktop(user_agent):
return desktop_response()
else:
return mobile_response()
Вам следует взглянуть на Tera-WURFL , это программный пакет на основе PHP и MySQL, который определяет мобильные устройства и их возможности. Вот код Tera-WURFL, который вы могли бы использовать, чтобы определить, является ли посещающее устройство мобильным:
<?php
require_once("TeraWurfl.php");
$wurflObj = new TeraWurfl();
$wurflObj->GetDeviceCapabilitiesFromAgent();
if($wurflObj->capabilities['product_info']['is_wireless_device']){
// this is a mobile device
}else{
// this is a desktop device
}
?>