Как определить, имеет ли конкретный тип мобильного клиента доступ к моему веб-приложению? - PullRequest
0 голосов
/ 27 ноября 2010

Моя текущая цель - узнать, когда iPhone, Android и некоторые другие устройства обращаются к моему веб-приложению Java.Мне не нужно знать ничего более конкретного, чем это.Я знаю, что можно получить User-Agent из заголовка HTTP-запроса и выполнить поиск по нему.

Может ли это быть так же просто, как просто увидеть, есть ли в строке «iPhone» или «Android»?Глядя на информацию user-agent в Википедии , она кажется достаточно простой для моих нужд.

Я также посмотрел на WURFL.Тем не менее, это кажется гораздо больше, чем мне нужно.Кроме того, API-интерфейсы GPL, и я хочу, чтобы моя лицензия не была GPL.Спасибо!

Ответы [ 3 ]

1 голос
/ 27 ноября 2010

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

Потому что ...? Иного и более простого стиля / look'n'feel? Для этого используйте CSS media rule .

<link rel="stylesheet" href="default.css" media="screen, projection">
<link rel="stylesheet" href="mobile.css" media="handheld">

Карманные компьютеры выберут один за handheld. Затем вы можете просто предоставить другой CSS, который сжимает / переупорядочивает разделы или пропускает некоторые занимающие много места разделы и так далее.

Нет необходимости в том, чтобы злобный пользовательский агент на стороне сервера прослушивал здесь.

0 голосов
/ 06 января 2011

См. Spring-Mobile проект.Вы можете использовать WurflDeviceResolver , который обнаруживает почти все мобильные устройства

0 голосов
/ 27 ноября 2010

Если вам не нужна большая степень детализации, поиск простой строки, такой как iPhone или Android в пользовательском агенте, может подойти.

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

Также, например, согласно это строка агента пользователя iPad -

Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us)
AppleWebKit/531.21.10 (KHTML, like Gecko)
Version/4.0.4 Mobile/7B314 Safari/531.21.10

Это означает, что если вы просто выполните поиск iPhone, вы поймаете все iPad в этом ведре.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...