ios - WKWebview 在我注销域后不同步 cookie,在域上打开

标签 ios swift wkwebview

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

注意 - 我在 mac 上检查了 chrome 浏览器,在这里它工作得很好。

最佳答案

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

问题是 WKWebView 不会立即写回 cookie。我认为它按自己的时间表进行。例如,当 WKWebView 关闭或可能定期关闭时。

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

在旧平台上支持与 WKWebView 的 cookie 同步是棘手的​​。有两种方法可能有效:

  1. 您可以在您传递给的请求的 header 中设置一个 cookie

    [WKWebView loadRequest:].

  2. 您可以通过运行以下命令从 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/

相关文章:

ios - 合并几个物理体

javascript - 如何使用 wkwebview 从 swift 返回 bool 值到 javascript 函数

ios - UIRefreshControl 与两个异步 json 下载来填充 UITableView 行和自定义标题 View

ios - 如何从 UISearchBar 移动占位符标签

ios - NSDateFormatter 返回错误的年份

swift - 我可以将静态图像放在 UIButton.imageView 中吗?那是动画?

swift - 当应用程序不是焦点时运行一个在后台倒计时的计时器? swift

swift - 在 swift 中使用未解析的标识符 'UITextBorderStyleRoundedRect'

ios - WKWebView - 无法加载资源: Origin null is not allowed by Access-Control-Allow-Origin

javascript - 下载在 WKWebView 中加载的嵌入式 PDF