我正在开发具有WKWebView
和原生登录屏幕的iOS应用。在本机登录屏幕上,用户可以登录,该API调用返回JSON对象和两个cookie。
我尝试做的是,当呼叫成功并且用户进入WKWebView
屏幕时,他们也会在显示的网站上登录。
WKWebView
已加载,所以我的问题是如何处理Cookie以便用户登录WKWebView
?
我已经阅读了this question & answer,但这对我不起作用。 WKWebView
并未显示任何内容,因此我认为它已被屏蔽或处于循环中。
更新 我使用多个WKWebViews,我发现如果我进行API调用,那么转到一个WKWebView它工作正常,我已经登录了。可能这里的棘手部分是我&# 39; m使用多个WKWebViews。
答案 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或更早版本完成此操作,这将无济于事。