代码之家  ›  专栏  ›  技术社区  ›  dskibin

WKWebView观察Cookie更改

  •  3
  • dskibin  · 技术社区  · 7 年前

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

    你能举例说明如何做到这一点吗?

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

    所以我把协议放在下面

    class ActivitiesViewController: UIViewController, UIGestureRecognizerDelegate, WKNavigationDelegate, WKHTTPCookieStoreObserver { 
    

    func cookiesDidChange(in cookieStore: WKHTTPCookieStore) {  
    

    但厨师没有改变,不是火灾(

    1 回复  |  直到 7 年前
        1
  •  6
  •   Alex    7 年前

    您必须添加视图控制器作为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中,发生了需要 WKWebsiteDataStore.default().httpCookieStore.add(self) 在创建WKWebView对象之前出现的行。