在iPhone应用程序中,Mobile Safari和WebView之间显示相同网页的最佳方式是什么? (似乎两者都有相同的用户代理,所以我怎么能检测到差异?)
答案 0 :(得分:0)
他们有不同的用户代理。根据whatismyuseragent.com,
Safari:Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-gb) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5
UIWebView:Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-gb) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8C148
不同之处在于“Version / 5.0.2”(对应于Mac Safari的营销版本)和“Safari / 6533.18.5”(对应于Safari内部版本号)。我不确定为什么Mobile / 8C148(对应于iOS 4.2.1)处于两者的中间。
此外,您可以设置UIWebView使用的用户代理"swizzling" -[NSMutableURLRequest setValue:forHTTPHeaderField:]或(可能)覆盖 - [NSURLRequest valueForHTTPHeaderField]。如何实现这一目标对读者来说是一种锻炼。