【问题标题】:Swift persistent cookie storageSwift 持久化 cookie 存储
【发布时间】:2021-05-04 06:20:47
【问题描述】:

我希望在多个 wkwebview 之间快速存储一个 cookie。我希望能够使用 wkwebview 登录并在整个应用程序中访问相同的信息。我的第一个问题是如何检查是否有 cookie,以及在登录完成后是否有 cookie,并且 url 是一个特定值,我将如何在整个应用程序中保存和访问 cookie。我还想确保在重新启动应用程序后 cookie 仍然存在。感谢您提前回复!

【问题讨论】:

标签: swift xcode session cookies wkwebview


【解决方案1】:

要在多个 webview 之间共享所有新 cookie,您可以使用 WKProcessPool,因此只需为您的应用创建单个池并将其设置为您的 webview:

let ProcessPool = WKProcessPool()
...
let configuration = WKWebViewConfiguration()
configuration.processPool = ProcessPool
webView = WKWebView(frame: self.view.bounds, configuration: configuration)

如果您希望收到有关 cookie 更改的通知,您应该在创建 webview 之前将观察者添加到 WKWebsiteDataStore

WKWebsiteDataStore.default().httpCookieStore.add(self)

...

extension AppDelegate : WKHTTPCookieStoreObserver {
    func cookiesDidChange(in cookieStore: WKHTTPCookieStore) {
        cookieStore.getAllCookies { cookies in
            print(cookies)
        }
    }
}

默认情况下,来自 web 视图的所有 cookie 都存储在您的应用启动之间。

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 2017-07-25
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2014-12-01
    • 2016-06-24
    相关资源
    最近更新 更多