ios - iOS 12 WKWebview 设置 customUserAgent 不起作用?
问题描述
设置 wkwebview customUserAgent 时,iOS 12 中似乎存在错误。在 webView:didFinishNavigation: 方法中,我打印 customUserAgent 并与 webivew.evaluateJavaScript 结果进行比较。它是不同的。
NSLog(@"user-agent is %@"); //Get a custom user-agent
[self.webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
NSLog(@"user-agent is %@", result); //Get a default user-agent
}];
有人看到同样的问题吗?
解决方案
最后,我发现问题是在 iOS 12 中调用其 evaluateJavaScript: 方法后无法更改 customUserAgent。这是我的代码
self..webView.evaluateJavaScript("navigator.userAgent") { [weak self] (result, error) in
self?.webView.customUserAgent = result as? String + "customAgent" //not work
}
}
您可以初始化 UIWebview 或另一个 WKWebiview 以获取当前用户代理并在其后附加您的自定义用户代理。
self.tempWebView.evaluateJavaScript("navigator.userAgent") { [weak self] (result, error) in
if self == nil || error != nil {
return
}
if let userAgent = result as? String {
self?.webView.customUserAgent = userAgent + "custom agent"
}
}
推荐阅读
- android - AOSP AOSP x86_64 XCB
- php - 选择所有带有空文件的行 Laravel
- javascript - 多次使用 useState 更新列表会导致错误输出
- sql-server - 为什么在我的 SQL Server 上删除了全局临时表?
- python - Numpy,将每行中的最大值更改为 1 而不会更改其他值
- html - MacOS 上的 Google Chrome 和 Safari 会在您将其拖放到所选文本之前抓取该字符
- django - 在点击 html 中的按钮并使用 DetailView (Django) 时使用户处于活动状态
- selenium-webdriver - 我找不到正确的 XPath 表达式来通过 selenium webdriver 将用户名和密码密钥发送到 Instragram 网站
- flutter - Flutter - 如何用对象旋转阴影?
- python - 支持绑定到本地地址的 Python 库(linux telnet 中的 --bind 选项)