Различают веб-браузер iPhone и пользовательский агент приложения iPhone - PullRequest
13 голосов
/ 22 июля 2010

Каков лучший способ отличить на сервере запрос, поступивший с iPhone через веб-браузер, от iphone с приложением, написанным с целью c?Какие различия я ищу в строке агента пользователя?

Ответы [ 3 ]

32 голосов
/ 06 сентября 2010

Кажется, что приложения iPhone, использующие компонент HTTP-запроса UIWebKit, имеют строку агента пользователя, подобную следующей

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0_1 like Mac OS X; fr-fr) AppleWebKit/532.9 (KHTML, like Gecko) Mobile/8A306
Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; fr-fr) AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7D11
Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; fr-fr) AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7E18

В то время как Safari на iPhone в основном имеет такую ​​же строку , но заканчивается на «Safari»/ XXX "

Однако, также возможно изменить пользовательский агент UIWebKit , тогда нет гарантии, что вы будете получать все приложения для iPhone, выполняя эти действия.

0 голосов
/ 22 июля 2010

Действительно, пользовательский агент будет другим.

в PHP, вы можете узнать это с помощью:

0 голосов
/ 22 июля 2010

Я полагаю, что пользовательские агенты из приложения Safari начинаются с "Mozilla", а пользовательские агенты из приложений начинаются с названия приложения.

...