cordova-plugin-device-orientation
Этот плагин предоставляет доступ к компасу устройства. Компас — это датчик, который определяет направление или курс устройства, обычно по отношению к его верхней части. Он измеряет направление в градусах от 0 до 359.99, где 0 — север.
Доступ осуществляется через глобальный объект navigator.compass.
Хотя объект прикреплён к глобальному пространству имён navigator, он становится доступным только после события deviceready.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.compass);
}
Сообщайте о проблемах на форуме отслеживания проблем Apache Cordova
Установка
cordova plugin add cordova-plugin-device-orientation
Поддерживаемые платформы
- Amazon Fire OS
- Android
- BlackBerry 10
- Браузер
- Firefox OS
- iOS
- Tizen
- Windows Phone 7 и 8 (если доступны в оборудовании)
- Windows 8
Методы
- navigator.compass.getCurrentHeading
- navigator.compass.watchHeading
- navigator.compass.clearWatch
navigator.compass.getCurrentHeading
Получение текущего направления компаса. Направление компаса возвращается через объект CompassHeading с использованием функции обратного вызова compassSuccess.
navigator.compass.getCurrentHeading(compassSuccess, compassError);
Пример
function onSuccess(heading) {
alert('Heading: ' + heading.magneticHeading);
};
function onError(error) {
alert('CompassError: ' + error.code);
};
navigator.compass.getCurrentHeading(onSuccess, onError);
navigator.compass.watchHeading
Получение текущего направления устройства с заданным интервалом. Каждый раз при получении направления выполняется функция обратного вызова headingSuccess.
Возвращённый идентификатор отслеживания ссылается на интервал отслеживания компаса. Идентификатор отслеживания может быть использован с navigator.compass.clearWatch для остановки отслеживания navigator.compass.
var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);
compassOptions может содержать следующие ключи:
- frequency: Частота получения направления компаса в миллисекундах. (Число) (По умолчанию: 100)
- filter: Изменение в градусах, необходимое для запуска обратного вызова watchHeading. При установке этого значения frequency игнорируется. (Число)
Пример
function onSuccess(heading) {
var element = document.getElementById('heading');
element.innerHTML = 'Heading: ' + heading.magneticHeading;
};
function onError(compassError) {
alert('Compass error: ' + compassError.code);
};
var options = {
frequency: 3000
}; // Update every 3 seconds
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
Особенности браузера
Значения для текущего направления генерируются случайным образом для имитации компаса.
Особенности iOS
Только один watchHeading может быть активен в один момент времени в iOS. Если watchHeading использует фильтр, вызов getCurrentHeading или watchHeading использует существующее значение фильтра для задания изменений направления. Отслеживание изменений направления с фильтром более эффективно, чем с интервалами времени.
Особенности Amazon Fire OS
-
filterне поддерживается.
Особенности Android
- Нет поддержки
filter.
Особенности Firefox OS
- Нет поддержки
filter.
Особенности Tizen
- Нет поддержки
filter.
Особенности Windows Phone 7 и 8
- Нет поддержки
filter.
navigator.compass.clearWatch
Остановка отслеживания компаса, на который ссылается параметр watch ID.
navigator.compass.clearWatch(watchID);
-
watchID: Идентификатор, возвращённый
navigator.compass.watchHeading.
Пример
var watchID = navigator.compass.watchHeading(onSuccess, onError, options); // ... later on ... navigator.compass.clearWatch(watchID);
CompassHeading
Объект CompassHeading возвращается функции обратного вызова compassSuccess.
Свойства
magneticHeading: Направление в градусах от 0 до 359.99 в определённый момент времени. (Число)
trueHeading: Направление относительно географического Северного полюса в градусах от 0 до 359.99 в определённый момент времени. Отрицательное значение указывает, что истинное направление определить нельзя. (Число)
headingAccuracy: Отклонение в градусах между отчётным направлением и истинным направлением. (Число)
timestamp: Время, в которое было определено это направление. (DOMTimeStamp)
Особенности Amazon Fire OS
trueHeadingне поддерживается, но отчётное значение равноmagneticHeadingheadingAccuracyвсегда равен 0, так как нет разницы междуmagneticHeadingиtrueHeading
Особенности Android
Свойство
trueHeadingне поддерживается, но отчётное значение равноmagneticHeading.Свойство
headingAccuracyвсегда равно 0, так как нет разницы междуmagneticHeadingиtrueHeading.
Особенности Firefox OS
Свойство
trueHeadingне поддерживается, но отчётное значение равноmagneticHeading.Свойство
headingAccuracyвсегда равно 0, так как нет разницы междуmagneticHeadingиtrueHeading.
Особенности iOS
- Свойство
trueHeadingвозвращается только при включённых сервисах геолокации черезnavigator.geolocation.watchLocation().
CompassError
Объект CompassError возвращается функции обратного вызова compassError при возникновении ошибки.
Свойства
- code: Одно из предопределённых кодов ошибок, перечисленных ниже.
Константы
CompassError.COMPASS_INTERNAL_ERRCompassError.COMPASS_NOT_SUPPORTED
© 2012, 2013, 2015 The Apache Software Foundation
Licensed under the Apache License 2.0.
https://cordova.apache.org/docs/en/6.x/reference/cordova-plugin-device-orientation/index.html