在UITabBarController中的UIWebView中支持HTML5视频的横向模式

时间:2011-02-17 15:30:46

标签: iphone uiwebview uitabbarcontroller html5-video

我在UITabBarController中的UINavigationController中有一个UIWebView。有时,UIWebView显示的页面包含HTML5视频对象。

视频按预期开始播放,但不支持横向模式。

我认为这可能是因为并非UITabBarcontroller中的所有视图控制器都自动切换到横向模式(我听说过“UITabBarController中的所有视图控制器应该支持自动旋转到横向模式以使UITabBarController自动旋转”)。

任何了解任何解决方法的人?可能是在应用程序之外打开视频本身的一些解决方案?

谢谢!

更新2011-03-15

我会稍微改写自己,但我觉得创建一个新问题并不够。 我有以下等级:

UITabBarController
    UINavigationController (NC-A)
        UITableView
        UIWebView (pushed from UITableView)
    UINavigationController (NC-B)
        A number of UITableViews
    UINavigationController (NC-C)
        A number of UITableViews

我想要UIWebView(在NC-A中),它有时包含HTML5视频对象(如上所述),以支持横向模式(并在用户翻转手机时自动调整/ -resize)

但是我不想在NC-B和NC-A控制的视图中实现自动旋转

为了支持UITabBarController中的自动旋转,我已经读到“每个选项卡中当前'顶部'的所有视图都必须实现shoudAutorotateToInterfaceOrientation(并且对于相关方向返回YES)”。

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

这是相当hacky,但您可以在javascript中捕获html5视频的“play”事件,然后触发您的webView委托将拦截的虚假URL。

从那里,构建一个MPMoviePlayerController,将它附加到你的根视图控制器(或以其他方式将其置于模态上)并按照你想要的方式设置自动旋转。

好处是用户可以保证本机电影播放器​​。缺点是它非常hacky。

答案 1 :(得分:1)

我使用的解决方案是以模态方式呈现UIWebView。然后整个视图支持横向,因此也支持UIWebView。