Cordova - Accelerometro

Il plug-in Accelerometer è anche chiamato device-motion. Viene utilizzato per monitorare il movimento del dispositivo in tre dimensioni.

Passaggio 1: installare il plug-in dell'accelerometro

Installeremo questo plugin usando cordova-CLI. Digita il codice seguente nel filecommand prompt finestra.

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

Passaggio 2: aggiungere pulsanti

In questo passaggio, aggiungeremo due pulsanti nel file index.htmlfile. Uno verrà utilizzato per ottenere l'accelerazione corrente e l'altro controllerà i cambiamenti di accelerazione.

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

Passaggio 3: aggiungere ascoltatori di eventi

Aggiungiamo ora listener di eventi per i nostri pulsanti onDeviceReady funzione all'interno index.js.

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

Passaggio 4: creazione di funzioni

Ora creeremo due funzioni. La prima funzione verrà utilizzata per ottenere l'accelerazione corrente e la seconda funzione osserverà l'accelerazione e le informazioni sull'accelerazione verranno attivate ogni tre secondi. Aggiungeremo anche il fileclearWatch funzione racchiusa da setTimeoutfunzione per interrompere la visione dell'accelerazione dopo il periodo di tempo specificato. Ilfrequency viene utilizzato per attivare la funzione di callback ogni tre secondi.

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

Ora se premiamo il GET ACCELERATIONpulsante, otterremo il valore di accelerazione corrente. Se premiamo ilWATCH ACCELERATIONpulsante, l'avviso verrà attivato ogni tre secondi. Dopo il terzo avviso viene mostrato il fileclearWatch verrà chiamata la funzione e non riceveremo più avvisi poiché abbiamo impostato il timeout a 10000 millisecondi.