ios - iOS 12 WKWebview设置customUserAgent无法正常工作吗?

标签 ios wkwebview ios12

设置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
}];

有人看到同样的问题吗?

最佳答案

最后,我发现问题在于,您无法在调用customUserAgent的validateJavaScript:iOS 12中的method之后对其进行更改。这是我的代码

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"
        }
    }

关于ios - iOS 12 WKWebview设置customUserAgent无法正常工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51356476/

相关文章:

swift - 如何打印具有多个数据的标题和uitableview的uiwebview

ios - 配置文件 "com.myCompany.myApp"不包含 com.apple.developer.authentication-services.autofill-credential-provider 权利

ios - 如何在 WKWebView 中加载带有参数的 POST URLRequest?

ios - 使用 SJSegmented 之后从其他 View Controller 重新加载 TableView

ios - Firemonkey 原生 iOS 组件的限制

ios - 重新加载 tableView 部分而不重新加载标题部分 - Swift

ios - 在展开可选值 WKWebView 获取参数时意外发现 nil

objective-c - willRotateToInterfaceOrientation 在 Universal MasterDetail 应用程序中不起作用

android - 从 Facebook/Instagram 链接时,Angular 7 网站在 android WebView 上崩溃

ios - 在新窗口或选项卡中打开的链接未在 native iOS 中加载