美文网首页
WKWebview 注入header

WKWebview 注入header

作者: 阿栋先森 | 来源:发表于2020-09-25 11:52 被阅读0次

    最近在项目中遇到与H5交互,当时方案是在请求头中加入header,但是后面遇到了比如浏览器缓存header不更新,可以设置请求头中加入Cache-Control nocache 等字段或者在链接中加入时间戳防止缓存,后者方案可能相对来说不是很好。

    在WKwebview因为加载请求是个异步操作,所以在初次webview loadrequest时候不需要加入header ,而是拦截webview的请求 ,在请求头中加入header,并且重复请求,但是还有一定问题 ,有时会有header丢失问题,所以我觉得最优解决方案是通过交互传参数可以解决这个问题,如果有更好方案请告诉我。

    - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
        NSURLRequest * request =  navigationAction.request;
        NSMutableURLRequest * mutRequest = [request mutableCopy];
        NSString * urlString = request.URL.absoluteString;
        NSDictionary * dictHader = request.allHTTPHeaderFields;
        if (![dictHader objectForKey:@"token"]) {
            [mutRequest setValue:@"123" forHTTPHeaderField:@"token"];
            [webView loadRequest:mutRequest];
            decisionHandler(WKNavigationActionPolicyAllow);
        }else{
            decisionHandler(WKNavigationActionPolicyAllow);
    
        }
       NSLog(@"====== >>>>url----- %@ request %@",urlString,[request allHTTPHeaderFields]);
    }
    

    相关文章

      网友评论

          本文标题:WKWebview 注入header

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