作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 Cordova 检测实时设备旋转(不是方向,以度为单位的旋转)。我使用了设备运动,但我得到了一堆加速度 x y 和 z 值,我如何从中计算旋转?
我想检测完整的 360 度旋转(想象一下将设备放在一根棍子[或钟摆]上,然后敲击它使其摆动)。
谢谢!
最佳答案
您可以使用The Screen Orientation API通过安装 plugin甘地在评论中提到过。
cordova 插件添加 cordova-plugin-screen-orientation
然后您可以在 deviceReady
之后使用事件来检测方向变化;
window.addEventListener('orientationchange', function(){
console.log(screen.orientation.type); // e.g. portrait
});
或
screen.orientation.onchange = function({
console.log(screen.orientation.type);
});
说实话,您应该能够在没有插件的情况下执行此操作,但添加 cordova 插件会更安全。
由于您想要检测 360 度旋转(不包括在内),因此您需要自己计算...类似的内容;
var startingPoint = 0;
window.addEventListener('orientationchange', monitorOrientation);
function monitorOrientation(e) {
console.log('Device orientation is: ', e. orientation);
if(e. orientation == 180 || e.orientation == -180) {
// You can extend this or remove it completely and increment the variable as you wish i.e. 4x90 = 360
startingPoint += 180;
}
if(startingPoint == 360) {
// Do whatever you want and reset starting point back to 0
startingPoint = 0;
}
}
关于cordova - 如何在 Cordova 中检测设备旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44968469/
我是一名优秀的程序员,十分优秀!