问题说明:在使用WKWebview时遇到一个问题,在h5页面A中存储的数据,在h5页面B中拿不到这个存储的数据。
原因:WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie。
解决方案:
通过让所有WKWebView 共享同一个 WKProcessPool 实例,可以实现多个 WKWebView 之间共享 Cookie(session Cookie and persistent Cookie)数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   | //定义一个processPool单例  +(WKProcessPool*)sharedProcessPool{
      static WKProcessPool *processPool = nil;     static dispatch_once_t onceToken;     dispatch_once(&onceToken, ^{         if (!processPool) {             processPool = [[WKProcessPool alloc] init];         }     });     return processPool; }
  // 配置     WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];     config.processPool = [WebViewController sharedProcessPool];     webView = [[WKWebView alloc] initWithFrame:() configuration:config];
   |