WKWebView 的 cookie 问题
场景一:原生登录之后立马跳转到 H5 页面
原因分析:NSHTTPCookieStorage 中的 cookie 不会立马(主动?)同步到 WKWebView,会导致进入 H5 页面后 cookie 没带上。
解决方案:初始化 WKWebView 的时候将 NSHTTPCookieStorage 中的 cookie 注入其中。
示例代码:
- (void)setupWebView {
WKUserContentController *userContentController = [WKUserContentController new];
NSString *cookieJS = [self updateCookieJSString];
WKUserScript *cookieScript = [[WKUserScript alloc] initWithSource:cookieJS injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO];
[userContentController addUserScript:cookieScript];
WKWebViewConfiguration *configuration = [WKWebViewConfiguration new];
configuration.processPool = [WKProcessPool new];
configuration.userContentController = userContentController;
self.webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
}