在cocoa中获取webkit版本

Mat*_*oal 8 cocoa webkit

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

有没有办法拦截webkit版本?

Rob*_*ger 6

您可以使用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版本.


Jul*_*ert 5

这有助于您在加载请求之前获取 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)