我正试图在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的第一个请求时进行身份验证。
另请参阅这篇堆栈文章和这篇苹果文档。