Cordova - 加速计



加速计插件也称为device-motion。它用于跟踪三维空间中的设备运动。

步骤 1 - 安装加速计插件

我们将使用cordova-CLI安装此插件。在命令提示符窗口中键入以下代码。

C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugindevice-motion 

步骤 2 - 添加按钮

在此步骤中,我们将在index.html文件中添加两个按钮。一个用于获取当前加速度,另一个用于监视加速度变化。

<button id = "getAcceleration">GET ACCELERATION</button>
<button id = "watchAcceleration">WATCH ACCELERATION</button>

步骤 3 - 添加事件监听器

现在让我们为按钮添加事件监听器到index.js中的onDeviceReady函数。

document.getElementById("getAcceleration").addEventListener("click", getAcceleration);
document.getElementById("watchAcceleration").addEventListener(
   "click", watchAcceleration);

步骤 4 - 创建函数

现在,我们将创建两个函数。第一个函数用于获取当前加速度,第二个函数监视加速度,并且关于加速度的信息将每三秒触发一次。我们还将添加由setTimeout函数包装的clearWatch函数,以在指定的时间段后停止监视加速度。frequency参数用于每三秒触发回调函数。

function 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!');
   };
}

function watchAcceleration() {
   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!');
   };
	
}

现在,如果我们按下获取加速度按钮,我们将获得当前加速度值。如果我们按下监视加速度按钮,警报将每三秒触发一次。显示第三个警报后,将调用clearWatch函数,并且我们不会再收到任何警报,因为我们将超时设置为 10000 毫秒。

Cordova Acceleration
广告