cordova android:锁定方向后获取屏幕尺寸

时间:2018-04-09 21:50:57

标签: android cordova cordova-plugins device-orientation

我正在使用screen orientation plugin。它工作正常但在我锁定屏幕方向后,屏幕尺寸保持与之前的方向尺寸。所以我必须重新加载应用程序才能在锁定方向后获得正确的屏幕尺寸。知道为什么会这样做吗?我需要在锁定后获得正确的尺寸。这是一个代码示例:

console.log(window.screen.width) // 450   
screen.orientation.lock('landscape').then(() => {
  console.log(window.screen.width) // 450. Should be 640
});

顺便说一句:我没有找到这个插件的问题跟踪器

1 个答案:

答案 0 :(得分:2)

作为解决方法,您可以尝试侦听正确的方向更改事件。以下代码段侦听更改事件,然后在触发一次后删除事件侦听器:

window.addEventListener('orientationchange', function() {
    // After orientationchange, add a one-time resize event
    var afterOrientationChange = function() {
        // YOUR POST-ORIENTATION CODE HERE
        // Remove the resize event listener after it has executed
        window.removeEventListener('resize', afterOrientationChange);
    };
    window.addEventListener('resize', afterOrientationChange);
});

在锁定方向之前添加此代码段。

编辑:这就是我建议将调整大小事件与方向更改事件结合使用的原因:https://stackoverflow.com/a/49383279/508098

我不知道为什么插件无法按预期工作 - 我没看。

虽然最好与该项目的开发人员讨论,正如您所指出的那样,该插件的项目没有问题跟踪器。

试试这个,看看你是否得到了正确的数字。