Подтвердить что ты не робот

UIWebView отправляет один и тот же User-Agent в заголовки запроса в качестве мобильного Safari?

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

4b9b3361

Ответ 1

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

Пример User Agent из 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

Ответ 2

Строки автономного мобильного пользователя Safari содержат слово "Версия", тогда как строки пользовательского агента uiWebView этого не делают. Таким образом, определение script может быть изменено для работы с последней версией iOS, например:

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