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 环境中未锁定为纵向模式