WKWebView保持header

iOS 在使用WKWebView的时候一般会在请求里面添加请求头,但是当进入到二级页面的时候就会发现请求头丢掉了,本人找了一个比较笨笨的办法维持住请求头

  • 注意 appNavigationUrl 是请求头的key
初始化wkwebView的时候设置上header 
 WKWebViewConfiguration * config = [[WKWebViewConfiguration alloc] init];
    WKCookiesManager * cookieManager = [WKCookiesManager shareCookies];
    config.processPool = cookieManager.processPool;
    WKPreferences * prefer = [[WKPreferences alloc] init];
    prefer.javaScriptEnabled = YES;
    prefer.javaScriptCanOpenWindowsAutomatically = YES;
    config.preferences = prefer;
    self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT) configuration:config];
    self.webView.allowsBackForwardNavigationGestures = YES;
    [self.view addSubview:self.webView];
    self.webView.UIDelegate = self;
    self.webView.navigationDelegate = self;
    NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:timeOutTime];
    [request addValue:_fatherUrl forHTTPHeaderField:@"appNavigationUrl"];
    [self.webView loadRequest:request];
-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
开始加载的时候判断是否有header 
NSURLRequest * request =   navigationAction.request;
  NSMutableURLRequest * mutRequest = [request mutableCopy];
  NSString * urlString = request.URL.absoluteString;
  NSLog(@"====== >>>>url----- %@ request %@",urlString,[request allHTTPHeaderFields]);
  NSDictionary * dictHader = request.allHTTPHeaderFields;
  if (![dictHader objectForKey:@"appNavigation"]) {
      [mutRequest addValue:@"true" forHTTPHeaderField:@"appNavigation"];
      [webView loadRequest:mutRequest];
      decisionHandler(WKNavigationActionPolicyCancel);
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 关于UIWebView的介绍,相信看过上文的小伙伴们,已经大概清楚了吧,如果有问题,欢迎提问。 本文是本系列...
    CoderLF阅读 9,044评论 2 12
  • WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨...
    Aiana阅读 4,648评论 1 8
  • 转载:http://www.cnblogs.com/NSong/p/6489802.html 导语 WKWebVi...
    李小威阅读 4,891评论 8 9
  • 1、加载网页 WKWebView *webView = [[WKWebView alloc] initWithFr...
    LearningCoding阅读 3,161评论 0 2
  • 世界上有人的地方都有中国人,是中国人都用筷子吃饭。这个习惯几千年也没有改变过。 筷子的标准长度是七寸六分,代表人有...
    看鉴阅读 523评论 0 1