Учебники

Кордова — Акселерометр

Плагин акселерометра также называется устройством-движением . Он используется для отслеживания движения устройства в трех измерениях.

Шаг 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 — Добавить прослушиватели событий

Теперь давайте добавим прослушиватели событий для наших кнопок в функцию onDeviceReady внутри index.js .

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

Шаг 4 — Создание функций

Теперь мы создадим две функции. Первая функция будет использоваться для получения текущего ускорения, а вторая функция будет следить за ускорением, а информация об ускорении будет запускаться каждые три секунды. Мы также добавим функцию clearWatch, обернутую функцией setTimeout, чтобы остановить отслеживание ускорения после указанного периода времени. Параметр частоты используется для запуска функции обратного вызова каждые три секунды.

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

Теперь, если мы нажмем кнопку GET ACCELERATION , мы получим текущее значение ускорения. Если мы нажмем кнопку УСКОРЕНИЕ ЧАСОВ , предупреждение будет срабатывать каждые три секунды. После отображения третьего оповещения будет вызвана функция clearWatch , и мы больше не будем получать оповещения, поскольку мы установили тайм-аут на 10000 миллисекунд.