# cordova-plugin-device-motion 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*, *y*i *z* . Dostęp odbywa się za pomocą obiektu globalnego `navigator.accelerometer`. Mimo, że obiekt jest dołączony do globalnego zakresu `navigator`, to nie dostępne dopiero po zdarzeniu `deviceready`. document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { console.log(navigator.accelerometer); } ## Instalacja cordova plugin add cordova-plugin-device-motion ## Obsługiwane platformy * Amazon Fire OS * Android * BlackBerry 10 * Przeglądarka * Firefox OS * iOS * Tizen * Windows Phone 8 * Windows ## Metody * navigator.accelerometer.getCurrentAcceleration * navigator.accelerometer.watchAcceleration * navigator.accelerometer.clearWatch ## Obiekty * Acceleration ## navigator.accelerometer.getCurrentAcceleration Uzyskać aktualne przyspieszenie wzdłuż osi *x*, *y* i *z*. Te wartości przyspieszenia są zwracane do funkcji wywołania zwrotnego `accelerometerSuccess`. navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError); ### Przykład 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); ### Quirks przeglądarki Wartości dla osi X, Y, Z ruchu są losowo generowane w celu symulacji akcelerometr. ### Dziwactwa iOS * 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`. ## navigator.accelerometer.watchAcceleration Pobiera bieżącego urządzenia `Acceleration` w regularnych odstępach czasu, wykonywanie funkcji wywołania zwrotnego `accelerometerSuccess` każdorazowe. Określ interwał w milisekundach przez parametr obiektu `acceleratorOptions` `frequency`. Identyfikator zwrócony zegarek odwołuje akcelerometr zegarek interwał i może być używany z `navigator.accelerometer.clearWatch`, aby zatrzymać obejrzeniu akcelerometru. var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess, accelerometerError, accelerometerOptions); * **accelerometerOptions**: Obiekt z następującymi opcjonalnymi kluczami: * **okres**: żądany okres wzywa do accelerometerSuccess z danych przyspieszenia w milisekundach. *(Liczba)* (Domyślnie: 10000) ### Przykład 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); ### Dziwactwa iOS Interfejs API wymaga sukcesu funkcji wywołania zwrotnego w interwał żądana, ale ogranicza zakres żądania do urządzenia między 40ms i 1000ms. Na przykład jeśli poprosisz o odstępie 3 sekundy (3000ms), interfejs API żądania danych z urządzenia co 1 sekundę, ale tylko wykonuje wywołanie zwrotne sukces co 3 sekundy. ## navigator.accelerometer.clearWatch Przestać oglądać `Acceleration` określany przez parametr `watchID`. navigator.accelerometer.clearWatch(watchID); * **watchID**: Identyfikator zwrócony przez `navigator.accelerometer.watchAcceleration`. ### Przykład var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); // ... later on ... navigator.accelerometer.clearWatch(watchID); ## Acceleration Zawiera `Accelerometer` dane przechwycone w określonym czasie. Wartości przyśpieszenia to efekt grawitacji (9.81 m/s ^ 2), tak, że kiedy urządzenie znajduje się płaska i górę, *x*, *y*, i *z* wartości zwracane powinno być ``, `` i `9.81`. ### Właściwości * **x**: Wartość przyśpieszenia na osi x. (w m/s^2) *(Liczba)* * **y**: Wartość przyśpieszenia na osi y. (w m/s^2) *(Liczba)* * **z**: Wartość przyśpieszenia na osi z. (w m/s^2) *(Liczba)* * **timestamp**: Znacznik czasu w milisekundach. *(DOMTimeStamp)*