首页 > 解决方案 > 为什么WKHTTPCookieStore的API——getAllCookies调用了completionHandler却没有session cookies包含

问题描述

WKNavigationResponse 在 iOS 12 中不再通过其 response.header 提供对 cookie 的访问,

所以,我必须使用新的 API 来获取所有的 cookie。当我使用时getAllCookies:,有时它没有调用completionHandler,有时它调用了没有会话cookie 包含的completionHandler。在某些情况下,我需要获取会话 cookie。

为什么WKHTTPCookieStore的API——getAllCookies总是不能调用completionHandler?还有,为什么有时候调用completionHandler却没有session cookies包含?

或者,有没有办法从 WKWebView 获取所有包含会话 cookie 的 cookie?

        WKHTTPCookieStore *cookieStore = webView.configuration.websiteDataStore.httpCookieStore;
        [cookieStore getAllCookies:^(NSArray* cookies) {
            // case 1: didn't call this completionHandler
            for (NSHTTPCookie *cookie in cookies) {

                //case 2 called this completionHandler without session cookie contains
            }
        }];

标签: session-cookieswkwebviewios12wkhttpcookiestore

解决方案


推荐阅读