美文网首页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