为啥 iOS UIWebView Video 不发送 cookie?
Posted
技术标签:
【中文标题】为啥 iOS UIWebView Video 不发送 cookie?【英文标题】:Why iOS UIWebView Video doesn't send cookie?为什么 iOS UIWebView Video 不发送 cookie? 【发布时间】:2014-11-21 10:47:23 【问题描述】:我有一个 UIWebView,并从我的网站加载一个 html 页面:
- (void) viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
[webView loadRequest:nsUrlRequest];
然后我想从 webview 加载一些图像/视频:
- (void)webViewDidFinishLoad:(UIWebView *)myView
// this line I got video url
NSString* videoUrl = XXXXX;
// cookie is all right in the page
[myView stringByEvaluatingjavascriptFromString:@"alert(document.cookie)"];
// image load request is correct with cookie
[myView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.createElement('img').src='/Images/logo.png'"]];
// but video request no cookie !!!!!
[myView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var video = document.createElement('video');video.src = '%@';video.autoPlay = true;", videoUrl]];
请帮帮我!!救救我!!!
【问题讨论】:
【参考方案1】:确保您已为 iPhone 中的 web 视图启用 cookie 尝试使用:
[NSHTTPCookieStorage sharedHTTPCookieStorage].cookieAcceptPolicy =
NSHTTPCookieAcceptPolicyAlways;
要发送 cookie,请查看此堆栈链接:https://***.com/a/21253352/2098690
【讨论】:
cookie 在 webview 中没问题,只是没有和视频请求一起发送,但是图像请求没问题.... 我已经添加了 NSHTTPCookieAcceptPolicyAlways @ArielZhang 试试这个NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies: cookies]; [request setAllHTTPHeaderFields:headers];
我如何获得请求?实际上,在我通过javascript设置视频的src后,视频的请求是自动调用服务器的。
我在 osx 的 webview 中看到了同样的问题。你找到解决办法了吗?以上是关于为啥 iOS UIWebView Video 不发送 cookie?的主要内容,如果未能解决你的问题,请参考以下文章
如果无法访问 UIWebView 的运行时,为啥要在 iOS7 中使用 JavaScriptCore?
为啥在创建 UIWebView 后清除 NSUserDefaults 会导致 EXC_CRASH?
iPhone UIWebView/Safari.app iOS 4 视频/电影 - 服务器问题?
UI11上的UIWebView / WKWebView崩溃(用完可执行内存)