Ten plugin umożliwia dostęp do akcelerometru. Akcelerometr jest czujnikiem ruchu, który wykrywa zmiany (delta) w ruchu względem bieżącej orientacji urządzenia, w trzech wymiarach na osi x, yi z .
cordova plugin add org.apache.cordova.device-motion
Zwraca aktualne przyspieszenie wzdłuż osi x, y oraz z.
Wartości przyspieszeń są zwracane w argumencie funkcji accelerometerSuccess
.
navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);
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);
Wartości dla osi X, Y, Z ruchu są losowo generowane w celu symulacji akcelerometr.
W iOS nie wprowadzono możliwości zmierzenia aktualnego przyspieszenia w dowolnym punkcie.
Musisz obserwować przyspieszenie i odbierać wyniki w określonych odstępach czasu.
Podsumowując, funkcja getCurrentAcceleration
zwraca ostatnią wartość zgłoszoną przez wywołanie watchAccelerometer
.
Pobiera aktualny obiekt Acceleration
w regularnych odstępach czasu, za każdym razem wywołując funkcję zwrotną accelerometerSuccess
. Interwał jest określony w milisekundach w parametrze frequency
obiektu acceleratorOptions
.
Zwracane watch ID jest odniesieniem do obserwacji akcelerometru i może być użyty w navigator.accelerometer.clearWatch
do zatrzymania tego procesu.
var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess, accelerometerError, accelerometerOptions);
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);
API wywołuje funkcję zwrotną success w żądanym przedziale ale zakres żądania do urządzenia jest ograniczony przedziałem od 40ms do 1000ms. Dla przykładu, jeśli żądasz 3 sekundowy przedział (3000ms), API pobierze dane z urządzenia co 1 sekundę, ale wykona funkcję zwrotną success co każde 3 sekundy.
Przestaje obserwować Acceleration
odnoszące się do parametru watchID
.
navigator.accelerometer.clearWatch(watchID);
navigator.accelerometer.watchAcceleration
.var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); // ... later on ... navigator.accelerometer.clearWatch(watchID);
Zawiera przechwycone w danej chwili dane z akcelerometru
. Wartości przyśpieszenia to efekt grawitacji (9.81 m/s ^ 2), tak, że kiedy urządzenie znajduje się w pozycji na płask i w górę, x, y, i z wartości zwracane powinny być ,
, i9.81
.