WKWebView从HTTP请求中注入cookie

时间:2017-07-16 18:08:14

标签: ios swift cookies wkwebview

我正在开发具有WKWebView和原生登录屏幕的iOS应用。在本机登录屏幕上,用户可以登录,该API调用返回JSON对象和两个cookie。

我尝试做的是,当呼叫成功并且用户进入WKWebView屏幕时,他们也会在显示的网站上登录。

WKWebView已加载,所以我的问题是如何处理Cookie以便用户登录WKWebView? 我已经阅读了this question & answer,但这对我不起作用。 WKWebView并未显示任何内容,因此我认为它已被屏蔽或处于循环中。

更新 我使用多个WKWebViews,我发现如果我进行API调用,那么转到一个WKWebView它工作正常,我已经登录了。可能这里的棘手部分是我&# 39; m使用多个WKWebViews。

2 个答案:

答案 0 :(得分:3)

我终于找到了我的cookie问题的解决方案。

我必须为我的所有WKProcessPool创建一个全局WKWebViews,我必须在每次登录时都发送来自HTTPCookieStorage.shared.cookies的Cookie,以便我回复的Cookie仍然连接到WKWebViews并没有丢失任何东西。希望这可以帮助有同样问题的人。

答案 1 :(得分:2)

iOS11中以WKHTTPCookieStore的优雅方式支持您的用例。登录并通过JSON api获取cookie后,使用setCookie自动在WKWebView中登录用户。

WKWebView正在接收iOS11的重大更新,并开辟了许多新的有趣可能性。您可以在Customized Loading in WKWebView WWDC session中找到特定用例的演示。

不幸的是,如果您需要为iOS10或更早版本完成此操作,这将无济于事。