我试图使用 Swift 从 WKWebView 获取用户代理:
let webView = WKWebView(frame: .zero)
useragentlabel.text = webView.configuration.applicationNameForUserAgent
但它返回 Mobile/15E148
,这可能是用户代理吗?
谢谢。
let UA = WKWebView().value(forKey: "userAgent")
UA的值(可选)为:
Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
适用于iPhone XS模拟器上的iOS 13.5。
此项已通过App Store审核。
[self.webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
}];
webViewForUserAgent = WKWebView() // 必须初始化
webViewForUserAgent?.evaluateJavaScript("navigator.userAgent") { (result, error) in
if error != nil {
print("获取userAgent时出错")
return
}
if let unwrappedUserAgent = result as? String {
UserAgent=unwrappedUserAgent
} else {
print("无法获取userAgent")
}
}
- Afatsumresult
是空的,而 [webView valueForKey:@"userAgent"])
返回了值。为什么?我更喜欢使用 js 脚本方法,因为 valueForKey
可能会崩溃。 - JsW这个代码获取用户代理:
let userAgent = webView.customUserAgent!
NSString *userAgent = [[WKWebView new] valueForKey:@"userAgent"];
- Ricardo Barroso