美文网首页
WKWebView自定义UA不生效的解决方案

WKWebView自定义UA不生效的解决方案

作者: EndOfJuly | 来源:发表于2022-08-15 15:48 被阅读0次

用下面的方法来设置UA的时候,用弹窗显示UA发现一直不生效

[self.wkWebView evaluateJavaScript:@"navigator.userAgent"  completionHandler:^(NSString* _Nullable oldUA, NSError * _Nullable error) {
    NSString * userAgent = oldUA;
    NSString * newUserAgent = [userAgent stringByAppendingString:@"your user agent"];
    // 修改UA
    self.wkWebView.customUserAgent = newUserAgent;
}];

查阅资料发现在iOS12系统之后,navigator.userAgent获取UA,然后在同一个webview上修改UA是不生效的。需要一个假的webview获取UA,然后在真正的webview上在原UA的基础上加上customUserAgent

self.fakeWKWebView = [[WKWebView alloc] init];
[self.fakeWKWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(NSString* _Nullable oldUA, NSError * _Nullable error) {
    self.fakeWKWebView = nil;
    NSString * userAgent = oldUA;
    NSString * newUserAgent = [userAgent stringByAppendingString:@"your user agent"];
    // 修改UA
    self.wkWebView.customUserAgent = newUserAgent;
}];

相关文章

网友评论

      本文标题:WKWebView自定义UA不生效的解决方案

      本文链接:https://www.haomeiwen.com/subject/cxclgrtx.html