首页 > 解决方案 > 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
}];

有人看到同样的问题吗?

标签: ioswkwebviewios12

解决方案


最后,我发现问题是在 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"
        }
    }

推荐阅读