WKWebView 观察 cookies 变化
WKWebView observe cookies changes
根据 wwdc 17,有一种方法可以在 iOs 11 (WebsiteDataStore.httpCookieStore) 中观察 WKWebView 中的 cookie 变化。
您能否举例说明如何做到这一点?
我发现有 WKHTTPCookieStoreObserver 并且它有 cookiesDidChange 成员。
所以我把协议如下
class ActivitiesViewController: UIViewController, UIGestureRecognizerDelegate, WKNavigationDelegate, WKHTTPCookieStoreObserver {
和
func cookiesDidChange(in cookieStore: WKHTTPCookieStore) {
但是 cookiesDidChange 没有触发(
您必须将视图控制器添加为 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)
行。
根据 wwdc 17,有一种方法可以在 iOs 11 (WebsiteDataStore.httpCookieStore) 中观察 WKWebView 中的 cookie 变化。
您能否举例说明如何做到这一点?
我发现有 WKHTTPCookieStoreObserver 并且它有 cookiesDidChange 成员。
所以我把协议如下
class ActivitiesViewController: UIViewController, UIGestureRecognizerDelegate, WKNavigationDelegate, WKHTTPCookieStoreObserver {
和
func cookiesDidChange(in cookieStore: WKHTTPCookieStore) {
但是 cookiesDidChange 没有触发(
您必须将视图控制器添加为 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)
行。