我正在研究需要CSS预览的OSX应用程序.我需要找到一种方法来区分使用safari 5.0的用户和使用safari 5.1的用户,因为webkit预览在这2个版本中有很多不同之处.例如,梯度径向解释完全不同!
有没有办法拦截webkit版本?
您可以使用JavaScript获取当前WebKit版本的用户代理字符串.做这样的事情:
NSString* userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
Run Code Online (Sandbox Code Playgroud)
这会产生这样的东西:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.14 (KHTML, like Gecko)
Run Code Online (Sandbox Code Playgroud)
然后,您可以解析用户代理字符串以获取正在使用的WebKit版本.
这有助于您在加载请求之前获取 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
Run Code Online (Sandbox Code Playgroud)