WKWebview在我退出域之后不同步cookie,在域上打开

时间:2018-04-10 12:51:32

标签: ios swift wkwebview

我正在swift开发一个WKWebview应用程序。这里需要登录到特定域。为此,我正在抛出一个记录有信息/令牌的cookie。 但是当我尝试注销并检查令牌是否存在时会出现问题? 即使在注销后,令牌仍然存在。

注意 - 我在mac上检查了Chrome浏览器,这里运行得很完美。

1 个答案:

答案 0 :(得分:0)

WKWebView在一个单独的进程中运行其所有网络,因此不会“看到”您的进程的cookie存储。

问题是WKWebView不会立即回写cookie。我认为它按照自己的时间表来做到这一点。例如,WKWebView关闭或可能是定期的。

在iOS 11中,我们添加了WKHTTPCookieStore,让您可以完全访问Web视图的cookie存储区。

在较旧的平台上支持与WKWebView的cookie同步非常棘手。有两种技术可行:

  1. 您可以在传递给

    的请求的标头中设置Cookie

    [WKWebView loadRequest:]。

  2. 您可以通过运行从Web视图中获取和设置Cookie JavaScript代码(使用-evaluateJavaScript:completionHandler :)即可 访问JavaScript document.cookie值。

  3. 更多参考https://forums.developer.apple.com/thread/95301另外还有一些解决方法Getting all cookies from WKWebView