Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么DeviceMotionEvent';iOS和Android的加速度有什么不同?_Javascript_Html_Motionevent - Fatal编程技术网

Javascript 为什么DeviceMotionEvent';iOS和Android的加速度有什么不同?

Javascript 为什么DeviceMotionEvent';iOS和Android的加速度有什么不同?,javascript,html,motionevent,Javascript,Html,Motionevent,我有一个页面可以查看运动事件。出于某种原因,iOS设备和Android设备(特别是Galaxy S4)上返回的值是不同的——本质上是相反的 例如,如果iPhone 5s上的加速度包括重力.y是50,Galaxy S4上的加速度将是-50。我创建了一个示例来演示这个问题 我的问题是: 我错过了一些简单的东西吗 哪个设备是正确的 这与每个供应商如何对齐方向轴有关。这个“问题”已经持续了很长一段时间。大多数人最终要做的是将加速代码包装到一个具有设备检测的类中。将其转换为更统一的格式,然后在应用程序中使

我有一个页面可以查看运动事件。出于某种原因,iOS设备和Android设备(特别是Galaxy S4)上返回的值是不同的——本质上是相反的

例如,如果iPhone 5s上的加速度包括重力.y是50,Galaxy S4上的加速度将是-50。我创建了一个示例来演示这个问题

我的问题是:

  • 我错过了一些简单的东西吗
  • 哪个设备是正确的

  • 这与每个供应商如何对齐方向轴有关。这个“问题”已经持续了很长一段时间。大多数人最终要做的是将加速代码包装到一个具有设备检测的类中。将其转换为更统一的格式,然后在应用程序中使用该格式

    这是一种非常简单但实用的方法。

    正如上面所报道的,Chrome Android和Safari iOS的实现之间存在差异

    目前,Android以与规范相同的方式定位重力,使用平板设备报告

    accelerationIncludingGravity: {x: 0, y: 0, z:9.81}
    
    然而,在iOS上,重力是相反的,这表明

    accelerationIncludingGravity: {x: 0, y: 0, z: -9.81}.
    

    应执行设备检查以解决此问题。

    我与您有相同的问题,如果您知道答案,请尽快告诉我,谢谢。已经添加了一项奖励。鉴于这是在供应商级别,是否可以安全地假设所有机器人,无论浏览器(chrome、firefox、native)如何,都将具有相同的加速方向,因为这是在硬操作系统级别,而不是在浏览器级别?根据我的经验,我可以说是的,对于所有主要硬件供应商来说,它都是独立于浏览器的。