jir*_*uml 10 cookies nsmutableurlrequest wkwebview
当我WKWebView使用身份验证cookie 创建新请求并发送请求时,WKWebView正确加载受保护的网页:
let req = NSMutableURLRequest(URL: NSURL(string: urlPath)!)
let headers = NSHTTPCookie.requestHeaderFieldsWithCookies([myAuthCookie]);
req.allHTTPHeaderFields = headers;
webView.loadRequest(req)
Run Code Online (Sandbox Code Playgroud)
问题是,当用户点击网页中的任何链接时,新请求将WKWebView丢失身份验证cookie并重定向到登录页面.Cookie域和路径已填充且正确.
我知道这里WKWebView提到的功能缺失.
提前感谢任何想法.
最好的办法是将你的cookie存储到
[NSHTTPCookieStorage sharedHTTPCookieStorage]
Run Code Online (Sandbox Code Playgroud)
然后,每次要加载请求时,请调用此函数:
- (void)loadRequest:(NSURLRequest *)request {
if (request.URL) {
NSDictionary *cookies = [NSHTTPCookie requestHeaderFieldsWithCookies:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:request.URL]];
if ([cookies objectForKey:@"Cookie"]) {
NSMutableURLRequest *mutableRequest = request.mutableCopy;
[mutableRequest addValue:cookies[@"Cookie"] forHTTPHeaderField:@"Cookie"];
request = mutableRequest;
}
}
[_wkWebView loadRequest:request];
}
Run Code Online (Sandbox Code Playgroud)
它从共享cookie中提取正确的cookie并将其包含在您的请求中
您可以在 we 视图中注入一些 javascript 来加载 cookie,这样 web 视图发起的请求也会有您的 cookie。有关更多详细信息,请参阅此问题的答案:
| 归档时间: |
|
| 查看次数: |
11829 次 |
| 最近记录: |