我目前正在编写一个HTML5网络应用程序,该应用程序严重依赖于加速计数据。我们的想法是让应用程序尽可能地跨平台(iPhone,iPad,机器人,Windows Phone等)
我遇到了麻烦,因为首先,有几种方法可以通过HTML5加速设备的加速:
其次,不同的设备给出不同的值。例如,一个设备可能会给出介于0-10和另一个0-100之间的值。为了使这更令人沮丧,同一设备上的不同浏览器也不一致。
有没有办法以某种方式获取这些信息并以一种方式使用它,我不必为设备和浏览器的每个组合编写单独的案例?例如,将加速度计数据从原始的,无意义的数字转换为设备的方向,以度为单位?
答案 0 :(得分: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);