Accelerometro
Cattura dispositivo movimento nella direzione x, ye z .
Metodi
Argomenti
Oggetti (sola lettura)
La funzionalità di accesso
A partire dalla versione 3.0, Cordova implementa le API a livello di dispositivo come plugin. Utilizzare la CLI plugin comando, descritto in Command-Line Interface, aggiungere o rimuovere questa funzionalità per un progetto:
$ 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
Questi comandi si applicano a tutte le piattaforme mirate, ma modificano le impostazioni di configurazione specifiche della piattaforma descritte di seguito:
-
Android (in
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 (in
config.xml)<feature name="Accelerometer"> <param name="ios-package" value="CDVAccelerometer" /> </feature> -
Windows Phone (in
Properties/WPAppManifest.xml)<Capabilities> <Capability Name="ID_CAP_SENSORS" /> </Capabilities>Riferimento: il manifesto dell'applicazione per Windows Phone
Alcune piattaforme possono supportare questa funzionalità senza richiedere alcuna configurazione speciale. Per una panoramica, vedere supporto della piattaforma.
accelerometer.getCurrentAcceleration
Ottenere l'attuale accelerazione lungo gli assi x, ye z .
navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);
Descrizione
L'accelerometro è un sensore di movimento che rileva il cambiamento (delta) nel movimento relativo l'orientamento corrente del dispositivo, in tre dimensioni lungo l'asse x, ye z .
I valori di accelerazione vengono restituiti per la accelerometerSuccess funzione di callback.
Piattaforme supportate
- Android
- BlackBerry WebWorks (OS 5.0 e superiori)
- iOS
- Tizen
- Windows Phone 7 e 8
- Windows 8
Esempio rapido
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);
Esempio completo
<!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>
iOS stranezze
iOS non riconosce il concetto di ottenere l'accelerazione della corrente in un dato punto.
Si deve guardare l'accelerazione e acquisire i dati di intervalli di tempo dato.
Così, il
getCurrentAccelerationfunzione restituisce l'ultimo valore segnalato da unwatchAccelerometerchiamare.
accelerometer.watchAcceleration
A intervalli regolari, ottenere l'accelerazione lungo l'asse x, ye z .
var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,
accelerometerError,
[accelerometerOptions]);
Descrizione
L'accelerometro è un sensore di movimento che rileva il cambiamento (delta) nel movimento relativo alla posizione corrente. L'accelerometro può rilevare il movimento 3D lungo x, ye z asse.
Il accelerometer.watchAcceleration metodo recupera corrente del dispositivo Acceleration a intervalli regolari, eseguendo la accelerometerSuccess funzione di callback ogni volta. Specificare l'intervallo in millisecondi via la acceleratorOptions dell'oggetto frequency parametro.
L'oggetto restituito guardare ID riferimenti intervallo orologio di accelerometro e può essere utilizzato con accelerometer.clearWatch a smettere di guardare l'accelerometro.
Piattaforme supportate
- Android
- BlackBerry WebWorks (OS 5.0 e superiori)
- iOS
- Tizen
- Windows Phone 7 e 8
- Windows 8
Esempio rapido
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);
Esempio completo
<!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>
iOS stranezze
L'API chiama la funzione di callback di successo nell'intervallo richiesto, ma limita la gamma di richieste alla periferica tra 40ms e 1000ms. Ad esempio, se si richiede un intervallo di 3 secondi, (3000ms), l'API richiede i dati dal dispositivo ogni secondo, ma esegue solo il callback di successo ogni 3 secondi.
accelerometer.clearWatch
Smettere di guardare il Acceleration fanno riferimento il watchID parametro.
navigator.accelerometer.clearWatch(watchID);
-
watchID: l'ID restituito da
accelerometer.watchAcceleration.
Piattaforme supportate
- Android
- BlackBerry WebWorks (OS 5.0 e superiori)
- iOS
- Tizen
- Windows Phone 7 e 8
- Windows 8
Esempio rapido
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
// ... later on ...
navigator.accelerometer.clearWatch(watchID);
Esempio completo
<!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>
Accelerazione
Contiene Accelerometer dati acquisiti in un punto specifico nel tempo.
Proprietà
- x: quantità di accelerazione sull'asse x. (in m/s ^ 2) (Numero)
- y: quantità di accelerazione sull'asse y. (in m/s ^ 2) (Numero)
- z: quantità di accelerazione sull'asse z. (in m/s ^ 2) (Numero)
- timestamp: creazione timestamp in millisecondi. (DOMTimeStamp)
Descrizione
Un Acceleration oggetto è popolato e restituito da uno qualsiasi dell'API Accelerometer metodi. I valori di accelerazione includono l'effetto della gravità (9,81 m/s ^ 2), in modo che quando un dispositivo si trova piatta e rivolto in su, x, y, e z valori restituiti devono essere , , e9.81.
Piattaforme supportate
- Android
- BlackBerry WebWorks (OS 5.0 e superiori)
- iOS
- Tizen
- Windows Phone 7 e 8
- Windows 8
Esempio rapido
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);
Esempio completo
<!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
funzione di callback onSuccess fornisce il Acceleration informazioni.
function(acceleration) {
// Do something
}
Parametri
- accelerazione: l'accelerazione in un momento unico. (Accelerazione)
Esempio
function onSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
accelerometerError
funzione di callback onError per funzioni di accelerazione.
function() {
// Handle the error
}
accelerometerOptions
Parametro facoltativo per personalizzare il recupero di valori di accelerometro.
Opzioni
-
frequenza: la frequenza di recuperare il
Accelerationin millisecondi. (Numero) (Default: 10000)