iOS13開始 WKWebView 去掉了cookie的自動推送功能,可以自己添加上。
代碼如下:
if (@available(iOS 11.0, *)) {
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
WKHTTPCookieStore *cookieStore = [WKWebsiteDataStore defaultDataStore].httpCookieStore;
if (cookies.count > 0) {
for (NSHTTPCookie *cookie in cookies) {
[cookieStore setCookie:cookie completionHandler:^{
}];
}
}
}
也可能是沒有處理WKwebview打開新頁面的問題,需要加上以下代碼:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
if(navigationAction.targetFrame ==nil) {
[webView loadRequest:navigationAction.request];
}
decisionHandler( WKNavigationActionPolicyAllow );
}
- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures {
if (!navigationAction.targetFrame.isMainFrame) {
[webView loadRequest:navigationAction.request];
}
return nil;
}
技術應用在 《悅覽播放器》中,可在App Store中搜索查看。