使用WKHTTPCookieStore删除cookie

Nat*_*kin 8 cocoa-touch webkit ios swift

我正在使用新WKHTTPCookieStore类,以便WKWebViews在应用程序中注入和删除cookie .

所有WKWebViews共享都是共同的,WKWebViewConfiguration以便他们可以共享一个共同的cookie商店.

使用该add()方法注入cookie工作正常,每个Web视图都可以看到新的cookie并发送它们的请求.删除cookie似乎是一个问题 - 网络视图仍然看到所谓的已删除的cookie,并继续发送每个请求:

let cookieStore = self.webkitConfiguration.websiteDataStore.httpCookieStore
cookieStore.getAllCookies { (cookies) in
    for cookie:HTTPCookie in cookies {
        if cookie.name == "CookieIWantToDelete" {
            cookieStore.delete(cookie, completionHandler: {
                self.webView.reload() //Deleted cookie is still sent with this request
            })
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以通过废弃所有的饼干来解决它WKWebsiteDataStore,但它似乎有点矫枉过正.

有任何想法吗?

Her*_*rix 3

例如,您需要在重新加载之前清除 WKWebView 缓存URLCache.shared.removeAllCachedResponses(),或者使用self.webView.reloadFromOrigin()加载新数据。