Phonegap - 在启用自动方向的同时防止旋转?

2024-04-01

我正在重新发布我在 Google 群组中找到的其他人的问题,我也遇到了类似的问题:


我有一个应用程序,要求所有内容都处于纵向,除了播放视频时。在 iOS 上,当视频播放传递到 Quicktime 播放器时,我希望视频能够以横向模式播放。目前,该视频仅以纵向播放,因为它似乎仅从phonegap应用程序继承了纵向。我的解决方案可能是将 Phonegap.plist 更改为自动旋转,但随后我希望能够使用 javascript 捕获旋转更改并阻止它们出现在应用程序的每个页面中(视频播放除外)。这听起来可行吗?是否有另一种方法可以仅针对应用程序的特定页面强制横向方向? 谢谢!


我在启用自动旋转的情况下尝试了以下操作,但没有成功:

$(document).ready(function(){
  document.addEventListener('orientationchange', function(e) { e.preventDefault(); }, false);
});

$(window).bind("orientationchange", function(){
    var orientation = window.orientation;
    var new_orientation = (orientation) ? 0 : 180 + orientation;
    $('body').css({
        "-webkit-transform": "rotate(" + new_orientation + "deg)"
    });
});

这是一种危险的方法,但认为这是唯一的方法。

您也可以绑定到窗口调整大小事件。

$(window).bind("resize", function(){
    var orientation = window.orientation;
    var new_orientation = (orientation) ? 0 : 180 + orientation;
    $('body').css({
        "-webkit-transform": "rotate(" + new_orientation + "deg)"
    });
});

我不久前写了这个小脚本:它修复了 iOS safari 中的乘法调整大小回调错误和 android 中的非/延迟/早期触发(1)方向更改错误。

(1)有时在浏览器改变宽度+高度之前有时不触发?有线!

if (!(/iphone|ipad/gi).test(navigator.appVersion)) {
    $(window).unbind("resize").bind("resize", function() {
        $(window).trigger("orientationchange");
    });
}

如果不是 iphone 或 ipad,您将触发窗口上的orientationchange 事件。

因此,当您绑定任何调整大小的函数时,它会抛出方向变化。

See: http://jsfiddle.net/aalouv/sABRQ/1/ http://jsfiddle.net/aalouv/sABRQ/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Phonegap - 在启用自动方向的同时防止旋转? 的相关文章

随机推荐