Cordova 在 Orientation="portrait" 时检测屏幕方向

Posted

技术标签:

【中文标题】Cordova 在 Orientation="portrait" 时检测屏幕方向【英文标题】:Cordova detect screen orientation when Orientation="portrait" 【发布时间】:2016-03-16 13:45:59 【问题描述】:

我希望我的应用始终是纵向的,所以在 config.xml 文件中我有这一行。

<preference name="Orientation" value="portrait"/>

效果很好。

问题是在那之后我无法检测屏幕方向。

我试过了

function doOnOrientationChange() 
    console.log(window.orientation);


window.addEventListener('orientationchange', doOnOrientationChange);

doOnOrientationChange();

此代码在我的手机处于纵向时显示0,在倒置时显示180,但在横向时则没有(不是90 也不是-90)。

我看到这个插件https://github.com/gbenvenuti/cordova-plugin-screen-orientation 似乎被很多人使用,但我无法让它在我的iPhone 6S(ios9)上运行,在查看问题后,似乎我在不止一个……

现在我不知道去哪里,所以任何形式的帮助都将不胜感激!

【问题讨论】:

在 iOS9 中,出于安全原因,他们限制了许多功能的工作,您必须更新 info.plist 文件的一些属性才能使屏幕方向插件工作 感谢您的回答,您还有关于这些属性的其他信息吗? 【参考方案1】:

我尚未对其进行测试,但我刚刚遇到了 Screen Orientation 插件(来自 Cordova),而这正是我想要的。

感谢大家的帮助!

【讨论】:

【参考方案2】:

问题在于这些函数或插件返回的是屏幕方向,而不是设备方向。这就是为什么你只能得到0或180的原因。可能你需要使用这个插件,它可以读取设备指南针,这样你就可以得到你想要的

https://github.com/apache/cordova-plugin-device-orientation

编码愉快!

【讨论】:

是的,有过这样的想法,但使用指南针或加速度计来了解用户是否转动手机似乎有点过头了,我不敢相信这是最好的解决方案......跨度>

以上是关于Cordova 在 Orientation="portrait" 时检测屏幕方向的主要内容,如果未能解决你的问题,请参考以下文章

Cordova Plugin Screen Orientation 1.4.2 (for IOS) 不会改变视口宽度

Cordova 的插件(屏幕方向/应用程序版本)不适用于 Ionic 5 / Angular 11

Cordova - iOS - 不能允许所有方向

离子屏幕方向 Cordova 插件在 iOS 环境中未锁定为纵向模式

Angular 2 app base href 与 Cordova IOS

ionic2/3 禁止屏幕旋转,禁止横屏,竖屏