# cordova-plugin-device-motion Этот плагин обеспечивает доступ к акселерометру устройства. Акселерометр является датчиком движения, который обнаруживает изменение (*дельта*) в движении относительно текущей ориентации устройства, в трех измерениях вдоль осей *x*, *y* и *z* . ## Установка cordova plugin add cordova-plugin-device-motion ## Поддерживаемые платформы * Amazon Fire ОС * Android * BlackBerry 10 * Обозреватель * Firefox OS * iOS * Tizen * Windows Phone 7 и 8 * Windows 8 ## Методы * navigator.accelerometer.getCurrentAcceleration * navigator.accelerometer.watchAcceleration * navigator.accelerometer.clearWatch ## Объекты * Acceleration ## navigator.accelerometer.getCurrentAcceleration Возвращает текущее ускорение вдоль осей *x*, *y* и *z*. Значения ускорения передаются функции обратного вызова `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); ### Браузер причуды Значения X, Y, Z движения являются все случайным в целях моделирования акселерометра. ### Особенности iOS * iOS не поддерживает автоматическое обновление значений для ускорения. * Вы должны самостоятельно отслеживать изменение ускорения и считывать данные через определенные интервалы времени. * Таким образом функция `getCurrentAcceleration` возвращает последнее значение, полученное при вызове `watchAccelerometer`. ## navigator.accelerometer.watchAcceleration Извлекает текущая устройство `Acceleration` с постоянным интервалом, выполнение `accelerometerSuccess` функция обратного вызова каждый раз. Задайте интервал в миллисекундах, через `acceleratorOptions` объекта `frequency` параметр. Возвращаемый смотреть ссылки ID акселерометр часы интервал и может быть использован с `navigator.accelerometer.clearWatch` чтобы остановить просмотр акселерометр. var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess, accelerometerError, accelerometerOptions); * **accelerometerOptions**: Объект с следующие необязательные свойствами: * **период**: запрошенный период звонков на accelerometerSuccess с ускорение данных в миллисекундах. *(Число)* (По умолчанию: 10000) ### Пример 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); ### Особенности iOS API вызывает функцию обратного вызова с указанным интервалом, но имеет ограничение по частоте запросов к устройству от 40 мс и до 1000 мс. Например если вы запрашиваете интервал 3 секунды, (3000 мс), API запрашивает данные от устройства каждую секунду, но функция обратного вызова будет срабатывать только каждые 3 секунды. ## navigator.accelerometer.clearWatch Останавливает отслеживание изменений объекта `Acceleration`, на который ссылается параметр `watchID`. navigator.accelerometer.clearWatch(watchID); * **watchID**: идентификатор, возвращенный`navigator.accelerometer.watchAcceleration`. ### Пример var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); // ... later on ... navigator.accelerometer.clearWatch(watchID); ## Acceleration Содержит данные полученные от акселерометра на определенный момент времени. Ускорение значения включают эффект гравитации (9,81 м/с ^ 2), так что когда устройство лежит плоская и вверх, *x*, *y*, и *z* значения, возвращаемые должны быть `` , `` , и`9.81`. ### Параметры * **x**: величина ускорение по оси x. (в м/с ^ 2) *(Число)* * **y**: величина ускорение по оси y. (в м/с ^ 2) *(Число)* * **z**: величина ускорение по оси z. (в м/с ^ 2) *(Число)* * **timestamp**: временая метка в миллисекундах. *(DOMTimeStamp)*