Как обнаружить мобильных клиентов на моем веб-сервере? - PullRequest
10 голосов
/ 12 мая 2011

Когда запрос http приходит на мой сервер, как мне определить, поступил ли он с iphone, android или других устройств?

Ответы [ 3 ]

8 голосов
/ 12 мая 2011

Вы можете получить User Agent.Это говорит о том, что это за тип браузера (iphone, chrome, т.е. что угодно)

Чтобы помочь вам:

http://whatsmyuseragent.com/

http://en.wikipedia.org/wiki/User_agent

7 голосов
/ 12 мая 2011

Вам необходимо проверить заголовок HTTP-запроса. В поле «Пользователь-агент» можно найти как ОС, так и браузер.

Если вы используете JavaScript, тогда используйте navigator объект

navigator.userAgent

Если вы используете php, вы можете получить доступ к заголовку HTTP

$userAgent = $_SERVER["HTTP_USER_AGENT"];
0 голосов
/ 05 мая 2018

Когда @ dave-delong заявляет в своем ответе , вы можете использовать User-Agent HTTP-заголовок.

Но User-Agent может быть довольно сложно разобрать.

Я рекомендую вам использовать сторонние библиотеки для анализа User-Agent и обнаружения мобильного телефона.

На Node.js

Очевидно, что OP использует Node.js, а затем может использовать mobiledetect.js ( demo ).

Обнаружение устройства путем сравнения шаблонов с заданной строкой User-Agent (телефон, планшет, рабочий стол, мобильная версия, ОС, версии).

const MobileDetect = require('mobile-detect');

const md = new MobileDetect(req.headers['user-agent']);

console.log(md.mobile());   // 'Sony'
console.log(md.phone());    // 'Sony'
console.log(md.tablet());   // null

На PHP

На PHP-сервере mobiledetect ( demo ).

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

...