7.0 KiB
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)