一、全局设置UserAgent(必须等completionHandler回调完成才生效)
[self.wkWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id result, NSError *error)
{
__strong typeof(weakself) strongSelf = weakself;
NSString *userAgent = result;
if(![userAgent containsString:@"XXX"])
{
NSString *newAgent = [userAgent stringByAppendingString:@"/XXX"];
// 设置global User-Agent
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:newAgent, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
[[NSUserDefaults standardUserDefaults]synchronize];
WKUserContentController *userContentController = [[WKUserContentController alloc] init];
WKWebViewConfiguration * configuration = [[WKWebViewConfiguration alloc]init];
configuration.preferences = [[WKPreferences alloc] init];
configuration.preferences.minimumFontSize = 20.0f;
configuration.preferences.javaScriptEnabled = YES;
configuration.userContentController = userContentController;
strongSelf.wkWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight) configuration:configuration];
[weakself addSubview:self.wkWebView];
[weakself.wkWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id result, NSError *error)
{
NSLog(@"%@", result);
}];
}
}];
二、局部设置(立即生效)
[self.myWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
NSString *oldUA = result;
NSString *newUA =[NSString stringWithFormat:@"%@/XXX", oldUA];
self.myWebView.customUserAgent = newUA;
}];