Cordova - Orientação do Dispositivo

A bússola é usada para mostrar a direção relativa ao ponto cardeal norte geográfico.

Etapa 1 - Instalar o plugin de orientação do dispositivo

Abra o command prompt janela e execute o seguinte.

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

Etapa 2 - Adicionar botões

Este plugin é semelhante ao accelerationplugar. Vamos agora criar dois botões emindex.html.

<button id = "getOrientation">GET ORIENTATION</button>
<button id = "watchOrientation">WATCH ORIENTATION</button>

Etapa 3 - Adicionar ouvintes de eventos

Agora, vamos adicionar event listeners dentro de onDeviceReady função em index.js.

document.getElementById("getOrientation").addEventListener("click", getOrientation);
document.getElementById("watchOrientation").addEventListener("click", watchOrientation);

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

Vamos criar duas funções; a primeira função irá gerar a aceleração atual e a outra irá verificar as mudanças de orientação. Você pode ver que estamos usando ofrequency opção novamente para ficar de olho nas mudanças que ocorrem a cada três segundos.

function getOrientation() {
   navigator.compass.getCurrentHeading(compassSuccess, compassError);

   function compassSuccess(heading) {
      alert('Heading: ' + heading.magneticHeading);
   };

   function compassError(error) {
      alert('CompassError: ' + error.code);
   };
}

function watchOrientation(){
   var compassOptions = {
      frequency: 3000
   }
   var watchID = navigator.compass.watchHeading(compassSuccess, 
      compassError, compassOptions);

   function compassSuccess(heading) {
      alert('Heading: ' + heading.magneticHeading);

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

   function compassError(error) {
      alert('CompassError: ' + error.code);
   };
}

Como o plugin da bússola é quase igual ao plugin de aceleração, mostraremos um código de erro desta vez. Alguns dispositivos não possuem o sensor magnético necessário para o funcionamento da bússola. Se o seu dispositivo não tiver, o seguinte erro será exibido.