1

我目前正在编写一个严重依赖加速度计数据的 HTML5 网络应用程序。我们的想法是让应用程序尽可能跨平台(iPhone、iPad、Android、Windows Phone 等)

我遇到了麻烦,首先,有几种方法可以通过 HTML5 获得设备的加速:

  • 设备运动事件
  • 设备定向事件
  • navigator.accelerometer

其次,不同的设备给出不同的值。例如,一个设备可能会给出 0-10 和另一个 0-100 之间的值。更令人沮丧的是,同一设备上的不同浏览器对此也不一致。

有没有办法以某种方式获取这些信息并以我不必为设备和浏览器的每种组合编写单独的案例的方式使用它?例如,将加速度计数据从原始、无意义的数字转换为以度为单位的设备方向?

4

1 回答 1

0

您总是可以为每个流行的设备设置一个除数,或者以某种方式获取最大值和最小值。如果最小值为负数,则从当前值中减去它,使其必须为正,然后除以最大值。然后你应该得到一个介于 0 和 1 之间的小数。没有保证。我用随机数测试了这个,但不是实际的加速器输入,它似乎将数字转换为小数。

if (device=="iphone")
{
minval=-10 ; maxval=10
    }
if (device=="somethingelse")
    {
    minval=0 ; maxval=100
        }
if (minval<0)
        {
        rawdataa = rawdata - minval
        }
    rawdataaa = rawdataa / maxval
    alert(rawdataaa);
于 2012-12-22T03:10:19.703 回答