使用与Mobile Safari中不同的样式表在iPhone应用程序的Web视图中显示Web内容

时间:2010-11-23 19:47:15

标签: iphone webview stylesheet

在iPhone应用程序中,Mobile Safari和WebView之间显示相同网页的最佳方式是什么? (似乎两者都有相同的用户代理,所以我怎么能检测到差异?)

1 个答案:

答案 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]。如何实现这一目标对读者来说是一种锻炼。