Accéléromètre
Capture le mouvement d'un appareil dans l'espace sur les axes x, y et z .
Méthodes
Arguments
Objets (lecture seule)
- Acceleration
Accéder à la fonctionnalité
Depuis la version 3.0, Cordova implémente les API liées à l'appareil en tant que plugins. Utiliser la commande plugin de l'Interface en Ligne de Commande, décrite dans la section intitulée L'Interface en Ligne de Commande, afin d'ajouter ou retirer cette fonctionnalité à un projet :
$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git
$ cordova plugin rm org.apache.cordova.core.device-motion
Ces commandes s'appliquent à toutes les plates-formes ciblées mais modifient les paramètres de configuration spécifiques aux différentes plates-formes tel que décrit ci-dessous :
-
Android (dans
app/res/xml/config.xml)<feature name="Accelerometer"> <param name="android-package" value="org.apache.cordova.AccelListener" /> </feature> -
BlackBerry WebWorks
(in www/plugins.xml) <feature name="Accelerometer"> <param name="blackberry-package" value="org.apache.cordova.accelerometer.Accelerometer" /> </feature> (in www/config.xml) <feature id="blackberry.system" required="true" version="1.0.0.0" /> <feature id="org.apache.cordova" required="true" version="1.0.0" /> -
iOS (en
config.xml)<feature name="Accelerometer"> <param name="ios-package" value="CDVAccelerometer" /> </feature> -
Windows Phone (en
Properties/WPAppManifest.xml)<Capabilities> <Capability Name="ID_CAP_SENSORS" /> </Capabilities>Référence : Manifeste d'Application pour Windows Phone
Certaines plates-formes peuvent prendre en charge cette fonctionnalité sans nécessiter aucune configuration spéciale. Voir plate-forme prise en charge pour une vue d'ensemble.
accelerometer.getCurrentAcceleration
Renvoie l'accélération en cours sur les axes x, yet z .
navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);
Description
L'accéléromètre est un capteur de mouvement qui détecte la modification (delta) en mouvement relatif à l'orientation actuelle de l'appareil, en trois dimensions le long de l'axe x, y et z .
Ces valeurs d'accélération sont retournées à la fonction callback accelerometerSuccess.
Plates-formes supportées
- Android
- BlackBerry WebWorks (OS 5.0 et plus)
- iOS
- Tizen
- Windows Phone 7 et 8
- Windows 8
Exemple rapide
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function onError() {
alert('onError!');
};
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
Exemple complet
<!DOCTYPE html>
<html>
<head>
<title>Acceleration Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
}
// onSuccess: Get a snapshot of the current acceleration
//
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
}
// onError: Failed to get the acceleration
//
function onError() {
alert('onError!');
}
</script>
</head>
<body>
<h1>Example</h1>
<p>getCurrentAcceleration</p>
</body>
</html>
Notes au sujet d'iOS
iOS ne permet pas d'obtenir l'accélération en cours à un instant donné.
Vous devez observer l'accélération et capturer ses données à un intervalle de temps donné.
De ce fait, la fonction
getCurrentAccelerationrenvoie la dernière valeur retournée par un appel àwatchAccelerometer.
accelerometer.watchAcceleration
À intervalle régulier, obtenez l'accélération suivant l'axe x, yet z .
var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,
accelerometerError,
[accelerometerOptions]);
Description
L'accéléromètre est un capteur de mouvement qui détecte la modification (delta) en mouvement par rapport à la position actuelle. L'accéléromètre permet de détecter un mouvement 3D le long de l'axe x, yet z.
La méthode accelerometer.watchAcceleration récupère l'Acceleration actuelle de l'appareil à intervalle régulier, exécutant la fonction de callback accelerometerSuccess à chaque fois. Spécifiez l'intervalle, en millisecondes, via le paramètre frequency de l'objet acceleratorOptions.
L'ID de surveillance référence les intervalles de surveillance de l'accéléromètre et peut être utilisé avec accelerometer.clearWatch d'arrêter de surveiller l'accéléromètre.
Plates-formes prises en charge
- Android
- BlackBerry WebWorks (OS 5.0 et plus)
- iOS
- Tizen
- Windows Phone 7 et 8
- Windows 8
Petit exemple
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function onError() {
alert('onError!');
};
var options = { frequency: 3000 }; // Update every 3 seconds
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
Exemple complet
<!DOCTYPE html>
<html>
<head>
<title>Acceleration Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// The watch id references the current `watchAcceleration`
var watchID = null;
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
startWatch();
}
// Start watching the acceleration
//
function startWatch() {
// Update acceleration every 3 seconds
var options = { frequency: 3000 };
watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
}
// Stop watching the acceleration
//
function stopWatch() {
if (watchID) {
navigator.accelerometer.clearWatch(watchID);
watchID = null;
}
}
// onSuccess: Get a snapshot of the current acceleration
//
function onSuccess(acceleration) {
var element = document.getElementById('accelerometer');
element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +
'Acceleration Y: ' + acceleration.y + '<br />' +
'Acceleration Z: ' + acceleration.z + '<br />' +
'Timestamp: ' + acceleration.timestamp + '<br />';
}
// onError: Failed to get the acceleration
//
function onError() {
alert('onError!');
}
</script>
</head>
<body>
<div id="accelerometer">Waiting for accelerometer...</div>
</body>
</html>
Particularités iOS
L'API appelle la fonction de callback de succès à l'intervalle demandé mais restreint l'éventail des demandes à l'appareil entre 40ms et 1000ms. Par exemple, si vous demandez un intervalle de 3 secondes, (3000ms), l'API demande des données de l'appareil toutes les 1 seconde, mais exécute seulement le callback de succès toutes les 3 secondes.
accelerometer.clearWatch
Arrêter la surveillance de le Acceleration référencée par le paramètre watchID.
navigator.accelerometer.clearWatch(watchID);
-
watchID: l'ID retourné par
accelerometer.watchAcceleration.
Plates-formes prises en charge
- Android
- BlackBerry WebWorks (OS 5.0 et plus)
- iOS
- Tizen
- Windows Phone 7 et 8
- Windows 8
Petit exemple
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
// ... later on ...
navigator.accelerometer.clearWatch(watchID);
Exemple complet
<!DOCTYPE html>
<html>
<head>
<title>Acceleration Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// The watch id references the current `watchAcceleration`
var watchID = null;
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
startWatch();
}
// Start watching the acceleration
//
function startWatch() {
// Update acceleration every 3 seconds
var options = { frequency: 3000 };
watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
}
// Stop watching the acceleration
//
function stopWatch() {
if (watchID) {
navigator.accelerometer.clearWatch(watchID);
watchID = null;
}
}
// onSuccess: Get a snapshot of the current acceleration
//
function onSuccess(acceleration) {
var element = document.getElementById('accelerometer');
element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +
'Acceleration Y: ' + acceleration.y + '<br />' +
'Acceleration Z: ' + acceleration.z + '<br />' +
'Timestamp: ' + acceleration.timestamp + '<br />';
}
// onError: Failed to get the acceleration
//
function onError() {
alert('onError!');
}
</script>
</head>
<body>
<div id="accelerometer">Waiting for accelerometer...</div>
<button onclick="stopWatch();">Stop Watching</button>
</body>
</html>
Accélération
Contient les données Accelerometer capturées à un moment donné dans le temps.
Propriétés
- x: Valeur de l'accélération sur l'axe des x. (en m/s^2) (Number)
- y: Valeur de l'accélération sur l'axe des y. (en m/s^2) (Number)
- y: Valeur de l'accélération sur l'axe des z. (en m/s^2) (Number)
- timestamp: Date de création en millisecondes. (DOMTimeStamp)
Description
Un objet de type Acceleration est retourné par chacune des méthodes de l'API Accelerometer. Les valeurs d'accélération tiennent compte de l'effet de gravité (9,81 m/s^2), ce qui signifie que x, y, et z vaudraient respectivement ,, et 9.81 si l'appareil reposait à plat, son écran orienté vers le haut.
Plates-formes supportées
- Android
- BlackBerry WebWorks (OS 5.0 et plus)
- iOS
- Tizen
- Windows Phone 7 et 8
- Windows 8
Exemple rapide
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function onError() {
alert('onError!');
};
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
Exemple complet
<!DOCTYPE html>
<html>
<head>
<title>Acceleration Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
}
// onSuccess: Get a snapshot of the current acceleration
//
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
}
// onError: Failed to get the acceleration
//
function onError() {
alert('onError!');
}
</script>
</head>
<body>
<h1>Example</h1>
<p>getCurrentAcceleration</p>
</body>
</html>
accelerometerSuccess
Fonction de callback onSuccess qui fournit les informations d'Acceleration.
function(acceleration) {
// Do something
}
Paramètres
- acceleration: L'accélération pour un instant donné. (Acceleration)
Exemple
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
accelerometerError
Fonction callback onError pour les méthodes d'accélération.
function() {
// Handle the error
}
accelerometerOptions
Paramètre optionnel permettant la personnalisation de la récupération des valeurs de l'accéléromètre.
Options
-
frequency: Fréquence de récupération de l'
Accelerationen millisecondes. (Number) (Défaut : 10000)