WKWebView修改user agent

iOS 9.0 开始,有如下API,可以自定义user agent

@property (nullable, nonatomic, copy) NSString *customUserAgent API_AVAILABLE(macosx(10.11), ios(9.0));

但是有些第三方网页是通过系统默认的user agent来进行页面适配,那么也需要默认的那部分user agent,根据iOS系统不同,user agent也不一样;
如12.3.1系统对应的user agent为:Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;
可以通过js获取原有agent,然后进行赋值操作;如:

__weak typeof(self) weakSelf = self;
[self.webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable agent, NSError * _Nullable error) {
        NSString *oldAgent = agent;
        // 给User-Agent添加额外的信息
        NSString *newAgent = [NSString stringWithFormat:@"%@;%@", oldAgent, @"custom-app"];
        weakSelf.webView.customUserAgent = newAgent;
      
    }];

如果要进行适配iOS8系统,则需要使用官方提供的另外一种方法,全局修改user agent

[self.webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable agent, NSError * _Nullable error) {
        NSString *oldAgent = agent;
        // 给User-Agent添加额外的信息
        NSString *newAgent = [NSString stringWithFormat:@"%@;%@", oldAgent, @"custom-app"];
        // 设置global User-Agent
        NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:newAgent, @"UserAgent", nil];
        [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
    }];

如果在WKWebView所在的ViewController,会出现第二次打开webView的时候,才会起效等问题;这里更倾向于在App delegate中,直接全局修改;申明一个变量webview进行user agent的赋值操作;要注意,单独声明的WKWebView的作用域的问题,此方法是异步方法;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS12发布之后,笔者也是随着更新了iOS12,但是发现了一个bug,老项目在以前的系统运行的好好的,在iOS1...
    Davis_阅读 7,127评论 5 1
  • 一、基础知识篇:Http Header之User-AgentUser Agent中文名为用户代理,是Http协议中...
    iPhone阅读 16,213评论 0 13
  • 目录: Android:Android 0.*Android 1.*Android 2.*Android 3.*A...
    敲代码的令狐葱阅读 4,469评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,530评论 1 32
  • 《若画请罪》 旧情往组故过孤, 刀请诗收劝说由。 怜惜别新爱真痴, 玩戏圈凉琵琶颐。 和笔纸上点点花, 一画带去曾...
    春城怡景阅读 601评论 8 19

友情链接更多精彩内容