Cordova - Acelerômetro

O plugin do acelerômetro também é chamado de device-motion. É usado para rastrear o movimento do dispositivo em três dimensões.

Etapa 1 - Instale o plug-in do acelerômetro

Vamos instalar este plugin usando cordova-CLI. Digite o seguinte código nocommand prompt janela.

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

Etapa 2 - Adicionar botões

Nesta etapa, vamos adicionar dois botões no index.htmlArquivo. Um será usado para obter a aceleração atual e o outro observará as mudanças de aceleração.

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

Etapa 3 - Adicionar ouvintes de eventos

Vamos agora adicionar ouvintes de eventos para nossos botões para onDeviceReady função dentro index.js.

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

Etapa 4 - Criação de funções

Agora, vamos criar duas funções. A primeira função será usada para obter a aceleração atual e a segunda função irá observar a aceleração e as informações sobre a aceleração serão disparadas a cada três segundos. Também adicionaremos oclearWatch função envolvida pelo setTimeoutfunção para parar de assistir a aceleração após o período de tempo especificado. ofrequency parâmetro é usado para acionar a função de retorno de chamada a cada três segundos.

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

Agora, se pressionarmos o GET ACCELERATIONbotão, obteremos o valor de aceleração atual. Se pressionarmos oWATCH ACCELERATIONbotão, o alerta será acionado a cada três segundos. Depois que o terceiro alerta é mostrado,clearWatch A função será chamada e não receberemos mais alertas, pois definimos o tempo limite para 10.000 milissegundos.