UIWebView是否在请求标头中发送与移动Safari相同的用户代理?

时间:2010-01-27 00:32:11

标签: iphone uiwebview user-agent

抱歉,我会亲自测试一下,但我目前没有我的mac。在UIWebView内部发出的Web请求是否发送了与移动Safari发出的Web请求相同的用户代理信息?

2 个答案:

答案 0 :(得分:34)

从UIWebView发出的Web请求不会在User Agent字符串中包含单词“Safari”。从Mobile Safari发出的Web请求将会。这是我发现确定请求来自应用程序或Mobile Safari的最佳方式。

App中的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

答案 1 :(得分:12)

独立移动Safari用户代理字符串包含单词' Version',而uiWebView用户代理字符串则不包含。因此,可以修改检测脚本以使用最新版本的iOS,如下所示:

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