美文网首页IOS
关于WKWebView 修改UserAgent

关于WKWebView 修改UserAgent

作者: 未知的远方 | 来源:发表于2017-03-10 09:27 被阅读3466次
  //    要区分打开H5是在本地APP还是在手机浏览器,前端伙伴说需要配合修改默认的 UserAgent,以便区分。
    //    修改全局UserAgent值(这里是在原有基础上拼接自定义的字符串)
    [_mainWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id result, NSError *error) {
        NSString *userAgent = result; 
        NSString *newUserAgent = [userAgent stringByAppendingString:@" ios/jkbs/1.2.3"];
//        NSString *newUserAgent = @"1";
        NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:newUserAgent, @"UserAgent", nil];
        [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
        [[NSUserDefaults standardUserDefaults] synchronize];
在网上找到的没有下面这句话,结果只是更改了本地的UserAgent,没修改网页的,导致一直有问题,好低级的错误,这个函数是9.0之后才出现的,在这之前,把这段代码放在WKWebView的alloc之前才会有效
        [_mainWebView setCustomUserAgent:newUserAgent];
//        echo(@"%@",[[NSUserDefaults standardUserDefaults] stringForKey:@"UserAgent"]);
        
        //    判断网址类型
        if ([self.url YgContainsString:@"indexlocal"]) {
            //        本地html
            [_mainWebView YgLoadLocationUrl:self.url];
        }else{
            [_mainWebView YgLoadNoneParaUrl:self.url];
        }
    }];

相关文章

网友评论

  • 钱塘老酒酿:各位大佬有没有遇到过,wkWebView 设置了userAgent 之后,和js交互的代码就不会执行了的问题呀。
    不执行下面的代理。
    - (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
    yunFeng:这个代理是你加载的web 重定向才会走的方法啊 和交互没交集
    未知的远方:@儡小傀 没遇到过啊!我的都很正常

本文标题:关于WKWebView 修改UserAgent

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