我正在快速开发 WKWebview 应用程序。这里需要登录到特定域。为此,我正在抛出一个带有登录信息/ token 的 cookie。 但是当我尝试注销并检查 token 是否存在时出现问题? 即使在注销后 token 仍然存在。
注意 - 我在 mac 上检查了 chrome 浏览器,在这里它工作得很好。
最佳答案
WKWebView 在单独的进程中运行其所有网络,因此不会“看到”您进程的 cookie 存储。
问题是 WKWebView 不会立即写回 cookie。我认为它按自己的时间表进行。例如,当 WKWebView 关闭或可能定期关闭时。
在 iOS 11 中,我们添加了 WKHTTPCookieStore,让您可以完全访问 Web View 的 cookie 存储。
在旧平台上支持与 WKWebView 的 cookie 同步是棘手的。有两种方法可能有效:
您可以在您传递给的请求的 header 中设置一个 cookie
[WKWebView loadRequest:].
您可以通过运行以下命令从 WebView 中获取和设置 cookie JavaScript 代码(使用 -evaluateJavaScript:completionHandler:) 访问 JavaScript document.cookie 值。
更多引用https://forums.developer.apple.com/thread/95301另外一些解决方法 Getting all cookies from WKWebView
关于ios - WKWebview 在我注销域后不同步 cookie,在域上打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49754217/