在cocoa中获取webkit版本



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

是否有办法拦截webkit版本?

您可以使用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)

你可以解析user-agent字符串来获取正在使用的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

最新更新