0

我正在尝试将此页面加载到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 之间进行选择时才会发挥作用,而且这似乎是正确的。

4

1 回答 1

0

Cookie 可能是这里的问题。

据我所知,Cookie 不能与来自 Webview 的第一个请求一起发送,但可以与后续请求一起发送到同一个 URL,当且仅当第一个请求成功时。

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

另请参阅此堆栈文章和此苹果文档

于 2013-01-22T20:00:12.750 回答