我正在研究需要CSS预览的OSX应用程序。 我需要找到一种方法来区分使用safari 5.0的用户和使用safari 5.1的用户,因为webkit预览在这2个版本中有很多不同之处。 例如,梯度径向解释完全不同!
有没有办法拦截webkit版本?
答案 0 :(得分:6)
您可以使用JavaScript获取当前WebKit版本的用户代理字符串。做这样的事情:
NSString* userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
会产生这样的东西:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.14 (KHTML, like Gecko)
然后,您可以解析用户代理字符串以获取正在使用的WebKit版本。
答案 1 :(得分:4)
这可以帮助您在加载请求之前获取WebKit版本,这样您就可以将自己的用户代理组合在一起。所以这个解决方案更好:
NSBundle *webKit = [NSBundle bundleWithIdentifier:@"com.apple.WebKit"];
NSString *version = [[webKit infoDictionary] objectForKey:@"CFBundleVersion"];
if (webKit && [webKit load]) {
NSLog(@"%@", [webKit infoDictionary]);
}
[webKit unload]; // you might also unload the bundle, if you don't need it later