Accelerometer

Accelerometer

Captura el movimiento del dispositivo sobre los ejes x, y, z.

Métodos

Argumentos

Objetos (Solo lectura)


accelerometer.getCurrentAcceleration

Obtiene la aceleración actual sobre los ejes x, y, z.

navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);

Descripción

El acelerómetro es un sensor de movimiento que detecta los movimientos relativos a la actual orientación del dispositivo (la diferencia). El acelerómetro puede detectar movimiento 3D sobre los ejes x, y, z.

La aceleración se obtiene mediante la función 'callback' accelerometerSuccess.

Plataformas Soportadas

Ejemplo Rápido

function onSuccess(acceleration) {
    alert('Aceleración X: ' + acceleration.x + '\n' +
          'Aceleración Y: ' + acceleration.y + '\n' +
          'Aceleración Z: ' + acceleration.z + '\n' +
          'Timestamp: '     + acceleration.timestamp + '\n');
};

function onError() {
    alert('onError!');
};

navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);

Ejemplo Completo

<!DOCTYPE html>
<html>
  <head>
    <title>Ejemplo de Acceleration</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Espera a que PhoneGap se inicie
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap esta listo
    //
    function onDeviceReady() {
        navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
    }

    // onSuccess: Obtiene el resultado
    //
    function onSuccess(acceleration) {
        alert('Aceleración X: '  + acceleration.x + '\n' +
              'Aceleración Y: '  + acceleration.y + '\n' +
              'Aceleración Z: '  + acceleration.z + '\n' +
              'Timestamp: '      + acceleration.timestamp + '\n');
    }

    // onError: Ocurrio un error
    //
    function onError() {
        alert('onError!');
    }

    </script>
  </head>
  <body>
    <h1>Ejemplo</h1>
    <p>getCurrentAcceleration</p>
  </body>
</html>

Peculiaridades en iPhone


accelerometer.watchAcceleration

Obtiene la aceleración de los ejes x, y, z, cada un cierto intervalo de tiempo.

var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,
                                                       accelerometerError,
                                                       [accelerometerOptions]);

Descripción

El acelerómetro es un sensor de movimiento que detecta cambios en el movimiento relativa a la posición actual (la diferencia). El acelerómetro puede detectar movimiento 3D sobre los ejes x, y, z La función accelerometer.watchAcceleration crea un visor que se encarga de observar la aceleración cada ciertos intervalos de tiempo. Cada vez que el visor de aceleración obtiene la aceleración, la función accelerometerSuccess se disparara. Puedes especificar el intervalo (milisegundos) en la opción frequency del objeto acceleratorOptions.

Esta función retorna un identificador que referencia a este visor de aceleración, puedes usarlo en la función clearWatch para detenerlo.

Plataformas Soportadas

Ejemplo Rápido

function onSuccess(acceleration) {
    alert('Aceleración X: ' + acceleration.x + '\n' +
          'Aceleración Y: '   + acceleration.y + '\n' +
          'Aceleración Z: '   + acceleration.z + '\n' +
          'Timestamp: '       + acceleration.timestamp + '\n');
};

function onError() {
    alert('onError!');
};

var options = { frequency: 3000 };  // Actualizar cada 3 segundos

var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);

Ejemplo Completo

<!DOCTYPE html>
<html>
  <head>
    <title>Ejemplo de Acceleration</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // El identificador del visor de aceleracion `watchAcceleration`
    var watchID = null;

    // Espera a que PhoneGap se inicie
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap esta listo
    //
    function onDeviceReady() {
        startWatch();
    }

    // Empieza a observar la aceleracion
    //
    function startWatch() {

        // Actualizar cada 3 segundos
        var options = { frequency: 3000 };

        watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
    }

    // Dejar de observar la aceleracion
    //
    function stopWatch() {
        if (watchID) {
            navigator.accelerometer.clearWatch(watchID);
            watchID = null;
        }
    }

    // onSuccess: Obtiene el resultado
    //
    function onSuccess(acceleration) {
        var element = document.getElementById('accelerometer');
        element.innerHTML = 'Aceleracion X: '  + acceleration.x + '<br />' +
                            'Aceleración Y: '  + acceleration.y + '<br />' +
                            'Aceleración Z: '  + acceleration.z + '<br />' +
                            'Timestamp: '      + acceleration.timestamp + '<br />';
    }

    // onError: Ocurrio un error
    //
    function onError() {
        alert('onError!');
    }

    </script>
  </head>
  <body>
    <div id="accelerometer">Esperando al acelerómetro...</div>
  </body>
</html>

Peculiaridades iPhone


accelerometer.clearWatch

Detiene el visor de aceleración con el watchID especificado.

navigator.accelerometer.clearWatch(watchID);

Plataformas Soportadas

Ejemplo Rápido

var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);

// ... mas tarde ...

navigator.accelerometer.clearWatch(watchID);

Ejemplo Completo

<!DOCTYPE html>
<html>
  <head>
    <title>Ejemplo de Acceleration</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // El identificador del visor de aceleración a detener
    var watchID = null;

    // Espera a que PhoneGap se inicie
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap esta listo
    //
    function onDeviceReady() {
        startWatch();
    }

    // Empieza a observar la aceleración
    //
    function startWatch() {

        // Actualiza cada 3 segundos
        var options = { frequency: 3000 };

        watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
    }

    // Deja de observar la aceleración
    //
    function stopWatch() {
        if (watchID) {
            navigator.accelerometer.clearWatch(watchID);
            watchID = null;
        }
    }

    // onSuccess: Obtiene el resultado de la aceleración actual
    //
    function onSuccess(acceleration) {
        var element = document.getElementById('accelerometer');
        element.innerHTML = 'Aceleración X: ' + acceleration.x + '<br />' +
                            'Aceleración Y: ' + acceleration.y + '<br />' +
                            'Aceleración Z: ' + acceleration.z + '<br />' + 
                            'Timestamp: '      + acceleration.timestamp + '<br />';
    }

    // onError: Fallo al obtener la aceleración
    //
    function onError() {
        alert('onError!');
    }

    </script>
  </head>
  <body>
    <div id="accelerometer">Esperando al acelerómetro...</div>
    <button onclick="stopWatch();">Detener el visor</button>
  </body>
</html>

Acceleration

Obtiene información actual sobre el sensor de movimiento.

Atributos

Descripción

Este objeto es creado y compuesto por PhoneGap, luego es retornado por el metodo Accelerometer.

Plataformas Soportadas

Ejemplo Rapido

function onSuccess(acceleration) {
    alert('Aceleración X: ' + acceleration.x + '\n' +
          'Aceleración Y: ' + acceleration.y + '\n' +
          'Aceleración Z: ' + acceleration.z + '\n' +
          'Timestamp: '     + acceleration.timestamp + '\n');
};

function onError() {
    alert('onError!');
};

navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);

Ejemplo Completo

<!DOCTYPE html>
<html>
  <head>
    <title>Ejemplo de Acceleration</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Espera a que Phonegap se inicie
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap esta listo
    //
    function onDeviceReady() {
        navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
    }

    // onSuccess: Obtiene el resultado
    //
    function onSuccess() {
        alert('Aceleración X: ' + acceleration.x + '\n' +
              'Aceleración Y: ' + acceleration.y + '\n' +
              'Aceleración Z: ' + acceleration.z + '\n' +
              'Timestamp: '     + acceleration.timestamp + '\n');
    }

    // onError: Ocurrió un error
    //
    function onError() {
        alert('onError!');
    }

    </script>
  </head>
  <body>
    <h1>Ejemplo</h1>
    <p>getCurrentAcceleration</p>
  </body>
</html>

accelerometerSuccess

Función 'callback' onSuccess que proporciona información sobre la aceleración.

function(acceleration) {
    // Hacer algo...
}

Argumentos

Ejemplo

function onSuccess(acceleration) {
    alert('Aceleración X: ' + acceleration.x + '\n' +
          'Aceleración Y: ' + acceleration.y + '\n' +
          'Aceleración Z: ' + acceleration.z + '\n' +
          'Timestamp: '     + acceleration.timestamp + '\n');
};

accelerometerError

Funcion 'callback' onError para las funciones de aceleración.

function() {
    // Maneja el error
}

accelerometerOptions

Este argumento es opcional y sirve para personalizar la obtención del acelerómetro.

Opciones