iOS13 WKWebView點擊不跳轉,沒反應。

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中搜索查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章