Отправляет ли UIWebView тот же пользовательский агент в заголовках запросов, что и мобильный Safari? - PullRequest
30 голосов
/ 27 января 2010

Извините, я бы сам это проверил, но сейчас у меня нет Mac. Отправляет ли веб-запрос внутри UIWebView ту же информацию о пользовательском агенте, что и веб-запрос из мобильного Safari?

Ответы [ 2 ]

34 голосов
/ 06 мая 2011

Веб-запросы, сделанные из UIWebView, не будут содержать слово «Safari» в строке агента пользователя. Веб-запросы, сделанные из Mobile Safari, будут. Это лучший способ определения запроса, поступившего из приложения или из мобильного Safari.

Пример пользовательского агента из UIWebView в приложении:

User-Agent: Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile

Пример пользовательского агента из Mobile Safari:

User-Agent: Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari
12 голосов
/ 04 апреля 2014

Строки автономного мобильного агента пользователя Safari содержат слово «Версия», а строки пользовательского агента uiWebView - нет. Таким образом, сценарий обнаружения может быть изменен для работы с последней версией iOS следующим образом:

var is_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)/i.test(navigator.userAgent);
...