作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个加载登录页面的 WKWebView,我需要的是在成功登录(表单提交)后设置的“iPlanetDirectoryPro”cookie(见下图)。所以,我试图存储它以便在另一个 WKWebView 中使用它。有趣的是“sharedHTTPCookieStorage”包含其他 cookie 但不包含“iPlanetDirectoryPro”。
到目前为止我尝试了什么:
我使用此委托(delegate)方法decidePolicyForNavigationResponse 来获取 cookie:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler{
NSHTTPURLResponse *response = (NSHTTPURLResponse *)navigationResponse.response;
NSArray *cookies =[NSHTTPCookie cookiesWithResponseHeaderFields:[response allHeaderFields] forURL:response.URL];
for (NSHTTPCookie *cookie in cookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
decisionHandler(WKNavigationResponsePolicyAllow);
}
在 webView 上评估 JavaScript 命令 document.cookie。
有什么想法吗?
最佳答案
无论出于何种原因,WKWebView 和 HTTPCookieStorage 都不能完美地协同工作。您需要自己管理 cookie,例如您可以查看 here
关于ios - 如何从 WKWebView 获取 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41481092/
我是一名优秀的程序员,十分优秀!