我正在swift开发一个WKWebview应用程序。这里需要登录到特定域。为此,我正在抛出一个记录有信息/令牌的cookie。 但是当我尝试注销并检查令牌是否存在时会出现问题? 即使在注销后,令牌仍然存在。
注意 - 我在mac上检查了Chrome浏览器,这里运行得很完美。
答案 0 :(得分:0)
WKWebView在一个单独的进程中运行其所有网络,因此不会“看到”您的进程的cookie存储。
问题是WKWebView不会立即回写cookie。我认为它按照自己的时间表来做到这一点。例如,WKWebView关闭或可能是定期的。
在iOS 11中,我们添加了WKHTTPCookieStore,让您可以完全访问Web视图的cookie存储区。
在较旧的平台上支持与WKWebView的cookie同步非常棘手。有两种技术可行:
您可以在传递给
的请求的标头中设置Cookie[WKWebView loadRequest:]。
您可以通过运行从Web视图中获取和设置Cookie JavaScript代码(使用-evaluateJavaScript:completionHandler :)即可 访问JavaScript document.cookie值。
更多参考https://forums.developer.apple.com/thread/95301另外还有一些解决方法Getting all cookies from WKWebView