设备运动(加速计)插件

该插件也称为 设备运动 。它用于在三维中跟踪设备运动。目前支持iOSAndroidWindows设备

方法:

navigator.accelerometer.getCurrentAcceleration
navigator.accelerometer.watchAcceleration

获取当前加速度

navigator.accelerometer.getCurrentAcceleration(callbackSuccess, callbackError);

callbackSuccess:执行成功时触发的回调方法,回调函数参数是acceleration对象,包括加速器的当前状态属性

包括以下属性

X:空间直角坐标系中 在x轴方向上的加速度
Y:空间直角坐标系中 在y轴方向上的加速度
Z:空间直角坐标系中 在z轴方向上的加速度
Timestamp:该加速度的时间

callbackError:执行遇到错误时触发的回调方法

例子:

//getAcceleration()用于获取当前加速度

   navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);

   function accelerometerSuccess(acceleration) {
      alert('Acceleration X: ' + acceleration.x + '\n' +
         'Acceleration Y: ' + acceleration.y + '\n' +
         'Acceleration Z: ' + acceleration.z + '\n' +
         'Timestamp: '      + acceleration.timestamp + '\n');
   };

   function accelerometerError() {
      alert('onError!');
   };
	

检测加速度变化

 var watchID = navigator.accelerometer.watchAcceleration(callbackSuccess, callbackError,option);

callbackSuccess:执行成功时触发的回调方法

callbackError:执行遇到错误时触发的回调方法

option:{frequency: times} times为间隔时间(毫秒数 number)

该方法返回一个watchID标识

通过watchID标识删除检测加速度变化

navigator.accelerometer.clearWatch(watchID);

例子:

/**
观察加速度,并且每三秒通知一次。我们还添加了由 setTimeout 函数包装的 clearWatch ,以在指定时间范围后停止观看加速。frequency 参数用于每三秒触发一次回调函数。
**/

    
   var accelerometerOptions = {
      frequency: 3000
   }

   var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess, accelerometerError, accelerometerOptions);

   function accelerometerSuccess(acceleration) {
      alert('Acceleration X: ' + acceleration.x + '\n' +
         'Acceleration Y: ' + acceleration.y + '\n' +
         'Acceleration Z: ' + acceleration.z + '\n' +
         'Timestamp: '      + acceleration.timestamp + '\n');

      setTimeout(function() {
         navigator.accelerometer.clearWatch(watchID);
      }, 10000);

   };

   function accelerometerError() {
      alert('onError!');
   };