Этот плагин обеспечивает доступ к акселерометру устройства. Акселерометр является датчиком движения, который обнаруживает изменение (дельта) в движении относительно текущей ориентации устройства, в трех измерениях вдоль осей x, y и z .
cordova plugin add cordova-plugin-device-motion
Возвращает текущее ускорение вдоль осей 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 не поддерживает автоматическое обновление значений для ускорения.
Вы должны самостоятельно отслеживать изменение ускорения и считывать данные через определенные интервалы времени.
Таким образом функция getCurrentAcceleration
возвращает последнее значение, полученное при вызове watchAccelerometer
.
Извлекает текущая устройство Acceleration
с постоянным интервалом, выполнение accelerometerSuccess
функция обратного вызова каждый раз. Задайте интервал в миллисекундах, через acceleratorOptions
объекта frequency
параметр.
Возвращаемый смотреть ссылки ID акселерометр часы интервал и может быть использован с navigator.accelerometer.clearWatch
чтобы остановить просмотр акселерометр.
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 вызывает функцию обратного вызова с указанным интервалом, но имеет ограничение по частоте запросов к устройству от 40 мс и до 1000 мс. Например если вы запрашиваете интервал 3 секунды, (3000 мс), API запрашивает данные от устройства каждую секунду, но функция обратного вызова будет срабатывать только каждые 3 секунды.
Останавливает отслеживание изменений объекта Acceleration
, на который ссылается параметр watchID
.
navigator.accelerometer.clearWatch(watchID);
navigator.accelerometer.watchAcceleration
.var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); // ... later on ... navigator.accelerometer.clearWatch(watchID);
Содержит данные полученные от акселерометра на определенный момент времени. Ускорение значения включают эффект гравитации (9,81 м/с ^ 2), так что когда устройство лежит плоская и вверх, x, y, и z значения, возвращаемые должны быть ,
, и9.81
.