WKWebView 从 HTTP 请求中注入 cookie
WKWebView inject cookies from HTTP request
我正在开发 iOS 具有 WKWebView
和本机登录屏幕的应用程序。在本机登录屏幕上,用户可以通过 API 调用 returns 一个 JSON 对象和两个 cookie 来完成登录。
我想做的是,当呼叫成功并且用户转到 WKWebView
屏幕时,他们也会登录显示的网站。
WKWebView
已经加载,所以我的问题是我应该如何处理 cookie,以便用户在 WKWebView
上登录?
我读过 但这对我不起作用。 WKWebView
没有显示任何内容,所以我认为它已被阻止或处于循环中。
更新
我正在使用多个 WKWebView,我发现如果我执行 API 调用,然后转到一个 WKWebView,它工作正常,我已登录。这里可能棘手的部分是我正在使用多个 WKWebView .
您的用例在 iOS11 中得到了优雅的支持,WKHTTPCookieStore. After login and getting the cookie via the JSON api, use setCookie 可以自动在 WKWebView 中登录用户。
WKWebView 在 iOS11 中进行了重大更新,并开辟了许多新的有趣的可能性。 Customized Loading in WKWebView WWDC session.
中有您的特定用例的演示
不幸的是,如果您需要在 iOS10 或更早的时间完成此操作,这将无济于事。
我终于找到了 cookie 问题的解决方案。
我必须为我所有的 WKWebViews
创建一个全局 WKProcessPool
并且我必须在每次登录调用时从 HTTPCookieStorage.shared.cookies
发送 cookie,以便我返回的 cookie仍然连接到 WKWebViews
并且没有丢失任何东西。希望这对遇到同样问题的人有所帮助。
我正在开发 iOS 具有 WKWebView
和本机登录屏幕的应用程序。在本机登录屏幕上,用户可以通过 API 调用 returns 一个 JSON 对象和两个 cookie 来完成登录。
我想做的是,当呼叫成功并且用户转到 WKWebView
屏幕时,他们也会登录显示的网站。
WKWebView
已经加载,所以我的问题是我应该如何处理 cookie,以便用户在 WKWebView
上登录?
我读过 WKWebView
没有显示任何内容,所以我认为它已被阻止或处于循环中。
更新 我正在使用多个 WKWebView,我发现如果我执行 API 调用,然后转到一个 WKWebView,它工作正常,我已登录。这里可能棘手的部分是我正在使用多个 WKWebView .
您的用例在 iOS11 中得到了优雅的支持,WKHTTPCookieStore. After login and getting the cookie via the JSON api, use setCookie 可以自动在 WKWebView 中登录用户。
WKWebView 在 iOS11 中进行了重大更新,并开辟了许多新的有趣的可能性。 Customized Loading in WKWebView WWDC session.
中有您的特定用例的演示不幸的是,如果您需要在 iOS10 或更早的时间完成此操作,这将无济于事。
我终于找到了 cookie 问题的解决方案。
我必须为我所有的 WKWebViews
创建一个全局 WKProcessPool
并且我必须在每次登录调用时从 HTTPCookieStorage.shared.cookies
发送 cookie,以便我返回的 cookie仍然连接到 WKWebViews
并且没有丢失任何东西。希望这对遇到同样问题的人有所帮助。