视频适用于Mobile Safari,但不适用于UIWebView



我正试图在UIWebView:中加载此页面

http://www.usopenofsurfing.com/on-demand/dvr

它在桌面浏览器上使用Flash工作,但在检测到iOS时有不同的实现方式。它在Mobile Safari上运行良好,但在UIWebView中不起作用。

知道为什么吗?

我已经查看了实际Mobile Safari和UIWebView之间报告的用户代理。

UIWebView: iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206
Safari: iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3

在flash和iOS功能之间切换的javascript只需查找字符串ipad、iphone或ipod:

var deviceAgent = navigator.userAgent.toLowerCase();
var is_iOS = deviceAgent.match(/(iphone|ipod|ipad)/);

因此,只有在Flash和iOS之间进行选择时,用户代理才能发挥作用,而且这似乎是正确的。

Cookies可能是这里的问题。

据我所知,Cookie不能与Webview的第一个请求一起发送,但可以与后续请求一起发送到同一URL,前提是第一个请求成功。

这会导致身份验证服务出现问题,该服务要求Cookie在对URL的第一个请求时进行身份验证。

另请参阅这篇堆栈文章和这篇苹果文档。