Cordova - Orientacja urządzenia

Kompas służy do wskazywania kierunku względem geograficznego północnego punktu kardynalnego.

Krok 1 - Zainstaluj wtyczkę Device Orientation

Otworzyć command prompt okno i uruchom następujące.

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

Krok 2 - Dodaj przyciski

Ta wtyczka jest podobna do accelerationpodłącz. Utwórzmy teraz dwa przyciski windex.html.

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

Krok 3 - Dodaj detektory zdarzenia

Teraz dodamy event listeners w środku onDeviceReady funkcja w index.js.

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

Krok 4 - Tworzenie funkcji

Stworzymy dwie funkcje; pierwsza funkcja wygeneruje aktualne przyspieszenie, a druga sprawdzi zmiany orientacji. Możesz zobaczyć, że używamyfrequency opcja ponownie, aby obserwować zmiany, które następują co trzy sekundy.

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

Ponieważ wtyczka kompasu jest prawie taka sama jak wtyczka przyspieszająca, tym razem pokażemy Ci kod błędu. Niektóre urządzenia nie mają czujnika magnetycznego potrzebnego do działania kompasu. Jeśli Twoje urządzenie go nie ma, zostanie wyświetlony następujący błąd.