用下面的方法来设置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;
}];
网友评论