ios12 - ios12-从 NSHTTPURLResponse 获取 set-cookie
问题描述
我之前在 decisionPolicyForNavigationResponse 方法中得到了 set-cookie,如下所示:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler{
NSHTTPURLResponse *response = (NSHTTPURLResponse *)navigationResponse.response;
self.response = response;
}
但是在ios12的navigationResponse中这个方法无法再次获取set-cookie。我可以用其他方法来替换它吗?或者还有其他方法可以让我在页面上获取 set-cookie 吗?如果您不能理解,请告诉我。谢谢~
解决方案
我遇到了和你一样的问题。我想不再通过WKNavigationResponse
. (从 iOS 12 开始。*)
WKWebview 的 cookie 存储在NSHTTPCookieStorage.sharedHTTPCookieStorage()
您可以尝试重新设计如下代码而不是您的代码
Objective-C
if (@available(iOS 11.0, *)) { //available on iOS 11+
WKHTTPCookieStore *cookieStore = webView.configuration.websiteDataStore.httpCookieStore;
[cookieStore getAllCookies:^(NSArray* cookies) {
if (cookies.count > 0) {
for (NSHTTPCookie *cookie in cookies) {
//TODO...
}
}
}];
}
斯威夫特 4
if #available(iOS 11, *) {
webView.configuration.websiteDataStore.httpCookieStore.getAllCookies({ (cookies) in
for cookie in cookies {
//TODO...
}
})
}
以上代码在 iOS 11+ 上可用,如果您的应用支持较低版本,您应该将上述代码与您的分开。
希望它对你有用。
推荐阅读
- javascript - Buffer.toString('binary') 添加“新字符”
- c# - 连接到 REST Api 并检索 JSON
- html - 另一个div内的div剪辑
- swift - 如何通过firebase实现评论
- javascript - Can't return JSX with Geolocation coordinates in React
- c++ - 设计一个将链表转换为二叉搜索树的函数to_tree,bt_node* to_tree(list_node* n)
- cuda - 无法在 Windows 10 中卸载 Cuda 9.2
- css - 范围输入拇指随时间偏移
- python - 如何使用python提取动态html内容
- powershell - 使用 PowerShell 从另一个文档 XML 节点值数组替换一个 XML 中的 XML 值