在cocoa中获取webkit版本

时间:2011-08-29 10:00:03

标签: cocoa webkit

我正在研究需要CSS预览的OSX应用程序。 我需要找到一种方法来区分使用safari 5.0的用户和使用safari 5.1的用户,因为webkit预览在这2个版本中有很多不同之处。 例如,梯度径向解释完全不同!

有没有办法拦截webkit版本?

2 个答案:

答案 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