如何从 WKWebView 启用和获取 cookie?
Posted
技术标签:
【中文标题】如何从 WKWebView 启用和获取 cookie?【英文标题】:How to enable and get cookies from WKWebView? 【发布时间】:2019-05-05 10:00:03 【问题描述】:我想启用WKWebView
的cookies,这样如果用户登录gmail 或解决WKWebView
中的recaptcha,不应该要求再次登录gmail 或解决recaptcha。
我还想获取这些 cookie,以便我可以将这些 cookie 传递给其他屏幕上的 WKWebView
的其他实例。
我正在使用以下代码获取 cookie,但它返回 0 个 cookie。
[dataStore.httpCookieStore getAllCookies:^(NSArray *cookies)
[self->settings setCookies:cookies];
[[NSNotificationCenter defaultCenter] postNotificationName:@"browserShouldReload" object:nil];
[self.navigationController popViewControllerAnimated:YES];
];
请告诉我如何实现这一点。
【问题讨论】:
【参考方案1】:管理应用程序上下文的 cookie 使用
HTTPCookieStorage 共享实例
获取所有 cookie:
HTTPCookieStorage.shared.cookies
如果存在[HTTPCookie]?
,它将把所有的cookies放在一个HTTPCookie数组中
您也可以获取特定 url 的 cookie
HTTPCookieStorage.shared.cookies(for: "https://www.gmail.com")
如果你愿意,你也可以从你想要的日期删除所有 cookie
HTTPCookieStorage.shared.removeCookies(since: Date.distantPast)
还有很多与HTTPCookieStorage.shared
对象有关的东西
请参阅 Apple 开发者文档中的 HTTPCookieStorage 了解更多信息
【讨论】:
以上是关于如何从 WKWebView 启用和获取 cookie?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 4 中从 WKWebView 获取 cookie 值?
iOS开发:WKWebView的使用(设置cookie、不受信任的HTTPS、返回关闭按钮)
Swift 4 WKWebView cookie 获取和删除同步问题