WKWebView观察cookie更改

时间:2018-04-11 14:28:29

标签: cookies wkwebview

根据wwdc 17,有一种方法可以在iOs 11(WebsiteDataStore.httpCookieStore)中观察WKWebView中的cookie更改。

你能举例说明怎么做吗?

我发现有WKHTTPCookieStoreObserver,它有cookiesDidChange成员。

所以我把该协议列为以下

class ActivitiesViewController: UIViewController, UIGestureRecognizerDelegate, WKNavigationDelegate, WKHTTPCookieStoreObserver { 

func cookiesDidChange(in cookieStore: WKHTTPCookieStore) {  

但cookiesDidChange不会触发(

1 个答案:

答案 0 :(得分:3)

您必须将视图控制器添加为Web数据存储的观察者,以触发cookiesDidChange(in :)方法。

// These two lines occur in the viewDidLoad method of a UIViewController class  
// This view controller conforms to the WKHTTPCookieStoreObserver protocol

WKWebsiteDataStore.default().httpCookieStore.add(self)  
let webView = WKWebView()  

// Configure and load the web view

注意:在iOS 11.3中,发生了一个更改,要求在创建WKWebView对象之前发生WKWebsiteDataStore.default().httpCookieStore.add(self)行。