在cordova/phonegap应用中设置横屏视图的问题

3

我有一个问题,需要把我的应用程序屏幕设置为横向。就像标题中的一样。在一开始,我通过将以下行添加到config.xml文件中来完成:<preference name="orientation" value="landscape"/>。但问题是它只能在一个方向上工作,也就是只能向左旋转屏幕。因此,我决定使用cordova插件来解决这个问题。我从npm中使用了“cordova-plugin-screen-orientation”插件并添加了:

    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
        screen.lockOrientation('landscape');
    }

您好,需要翻译的内容如下:

转到index.html页面,这很正常。另一个问题是,我的某些文件有这行代码:

    function onBackKeyDown() {
    navigator.app.exitApp();
    }

点击Android条上的箭头后,会关闭应用程序。虽然点击这个按钮确实会关闭应用程序,但是它仍然在RAM中,而且点击这个按钮后(图片)button,你可以回到应用程序,但是插件不再起作用了。我的应用程序变成了纵向方向。现在我的问题是:我该怎么做才能避免这种情况?我应该设置它以某种方式从RAM中关闭,还是有更好的设置方向的方法?谢谢。
1个回答

1
如果您的应用程序从RAM中重新打开/继续运行,则会触发恢复事件。您可以为其添加事件侦听器,并在回调函数中锁定屏幕方向:
document.addEventListener("resume", onResume, false);

function onResume() {
  screen.lockOrientation('landscape');
}

我需要将这个添加到所有页面还是只添加到第一个页面(index.html)? - wymyszony
如果不是单页应用程序(SPA),则必须在每个可能“恢复”的页面上添加它。 - David
好的,我会尝试。请给我一秒钟。 - wymyszony
好的,我做到了,但它的工作方式并不完全符合我的期望。我“修复”了方向,但只有在屏幕被锁定后才能生效。因此,我仍然可以将屏幕旋转到纵向,但在我锁定和解锁手机后它就可以正常工作了。 - wymyszony
你可以尝试使用这个插件来优化体验。它提供了一些有用的方法和回调函数。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接