测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可 | Apache 2 |
发布最后一次发布 | 2016 年 11 月 |
由 Holly Schinsky,Shazron Abdullah 维护。
标题:设备方向
Android | iOS | Windows 8.1 商店 | Windows 8.1 手机 | Windows 10 商店 | Travis CI |
---|---|---|---|---|---|
此插件提供对设备罗盘的访问。罗盘是一种传感器,用于检测设备指向的方向或航向,通常指的是设备顶部。它测量航向的度数,从 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
获取当前罗盘航向。罗盘航向通过 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);
以固定的时间间隔获取设备当前的航向。每次获取航向时,都会执行 headingSuccess
回调函数。
返回的监控 ID 引用了罗盘监控间隔。该监控 ID 可以与 navigator.compass.clearWatch
结合使用,以停止监控 navigator.compass。
var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);
compassOptions
可以包含以下键
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
处于生效状态。如果watchHeading
使用了过滤器,那么调用getCurrentHeading
或watchHeading
将使用现有的过滤器值来指定航向变化。使用过滤器观察航向变化比使用时间间隔更有效率。
filter
不受支持。filter
不受支持。filter
不受支持。filter
不受支持。filter
不受支持。停止通过watch ID参数引用的指南针的观察。
navigator.compass.clearWatch(watchID);
navigator.compass.watchHeading
返回的ID。var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
// ... later on ...
navigator.compass.clearWatch(watchID);
A CompassHeading
对象被返回给compassSuccess
回调函数。
magneticHeading:在某一特定时刻的0-359.99度内的航向。 (数字)
trueHeading:在某一特定时刻相对于地理北极的0-359.99度内的航向。负值表示无法确定真实航向。 (数字)
headingAccuracy:报告航向与真实航向之间的偏差(以度为单位)。 (数字)
timestamp:此航向被确定的时间。 (DOMTimeStamp)
trueHeading
不受支持,但报告与magneticHeading
相同的值
headingAccuracy
始终为0,因为magneticHeading
和trueHeading
之间没有差异
trueHeading
属性不受支持,但报告与magneticHeading
相同的值。
headingAccuracy
属性始终为0,因为magneticHeading
和trueHeading
之间没有差异。
trueHeading
属性不受支持,但报告与magneticHeading
相同的值。
headingAccuracy
属性始终为0,因为magneticHeading
和trueHeading
之间没有差异。
trueHeading
属性仅当通过navigator.geolocation.watchLocation()
启用位置服务时返回。当发生错误时,将返回一个 CompassError
对象传递给 compassError
回调函数。
CompassError.COMPASS_INTERNAL_ERR
CompassError.COMPASS_NOT_SUPPORTED