Activa las notificaciones push PhoneGap Spain

BLOG

Jose Jesus Perez Rivas
Publicado el: 14 - sep - 2017 Categorías: Android, Cordova, iOS, Javascript, W3C, Windows

Migración desde el plugin “Cordova Device Orientation”

Al igual que el plugin “Cordova Device Motion“, el plugin “Cordova Device Orientation” también verá su puesta de sol pronto. Este complemento proporciona acceso a la brújula del dispositivo que detecta la dirección o el rumbo que apunta el dispositivo. La API de orientación y movimiento del dispositivo W3C ahora define una forma de acceder a la brújula del dispositivo y es compatible con dispositivos iOS, Android y Windows. Por lo tanto, este complemento Cordova ya no es necesario.

Migración del complemento a la API de dispositivo de W3C

El acceso a la brújula del dispositivo en el plugin Cordova es proporcionado por un objeto global de navigator.compass que proporciona un método navigator.compass.watchHeading que permite a los usuarios recopilar el los datos de la brújula. El rumbo magnético de la brújula indica el rumbo en grados de 0-359.99 en un solo momento en el tiempo.

A continuación se muestra un ejemplo para obtener estos valores:

 Code: arbitrary (select
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

function onSuccess(heading) {
    var element = document.getElementById('heading');
    element.innerHTML = 'Heading: ' + heading.magneticHeading;
};
function onError(compassError) {
    alert('Compass error: ' + compassError.code);
};
var options = {
    frequency: 3000
}; // Update every 3 seconds
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

Sin embargo, antes de recopilar valores de la brújula del dispositivo, necesitamos calibrar la brújula instruyendo al usuario a hacerlo:

 Code: arbitrary (select
1.
2.
3.
4.

window.addEventListener("compassneedscalibration",function(event) {
    // ask user to wave device in a figure-eight motion  
       event.preventDefault();
}, true);

Una vez que la brújula ha sido calibrada, el listener “deviceorientation” puede obtenerse por:

 Code: arbitrary (select
1.
2.
3.
4.

function processEvent(event) {
    // process the event object
},
window.addEventListener("deviceorientation",processEvent, true);

Una vez que se ha registrado el evento de orientación de dispositivo, se pueden obtener los valores de alfa, beta y gamma para la orientación del dispositivo utilizando el siguiente código de ejemplo:

 Code: arbitrary (select
1.
2.
3.

console.log(Math.round(event.alpha));
console.log(Math.round(event.beta));
console.log(Math.round(event.gamma));

El valor del encabezamiento magnético que utilizamos para obtener del receptor “watchHeading” del plugin Cordova Device Orientation se puede recopilar utilizando el valor de (360 – event.alpha).
En el Plugin de movimiento de dispositivo de Cordova, el listener para la propiedad “watchHeading” se eliminó utilizando el método clearWatch como se muestra a continuación:

 Code: arbitrary (select
1.
2.

// watchID created while adding the watchHeading listener
navigator.compass.clearWatch(watchID);

Sin embargo, de acuerdo con la API de orientación y movimiento del dispositivo W3C, el detector de orientación de dispositivos puede eliminarse mediante:
1.  window.removeEventListener("deviceorientation",processEvent);

Feliz código :)

2 Respuestas.

  1. Parece que Phonegap es cada vez más obsoleto

  2. Hola Leonardo, todo lo contrario. Cordova se va adaptando a las nuevas funcionalidades que la W3C nos permite utilizar. Ten en cuenta que una de las ideas principales de la W3C es la estandarización de la web por lo que al usar Cordova un navegador como marco, finalmente iremos migrando a el uso estándar de herramientas del propio navegador y no con plugins nativos adaptados a Cordova.

Deja tu comentario

Debes estarlogueado para comentar.