cordova-plugin-device-orientation 1.0.4

cordova-plugin-device-orientation 1.0.4

测试已测试
语言语言 Obj-CObjective C
许可 Apache 2
发布最后一次发布2016 年 11 月

Holly SchinskyShazron Abdullah 维护。



  • Adobe PhoneGap 团队

标题:设备方向

描述:访问罗盘数据。

Android iOS Windows 8.1 商店 Windows 8.1 手机 Windows 10 商店 Travis CI
Build Status Build Status Build Status Build Status Build Status

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 回调函数。

返回的监控 ID 引用了罗盘监控间隔。该监控 ID 可以与 navigator.compass.clearWatch 结合使用,以停止监控 navigator.compass。

var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);

compassOptions 可以包含以下键

  • frequency:以毫秒为单位获取罗盘航向的频率。(数字)(默认值:100)
  • 过滤器:启动watchHeading成功回调所需的度数变化。当此值设置后,频率将被忽略。(数字)

示例

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怪癖

在iOS中,一次只能有一个watchHeading处于生效状态。如果watchHeading使用了过滤器,那么调用getCurrentHeadingwatchHeading将使用现有的过滤器值来指定航向变化。使用过滤器观察航向变化比使用时间间隔更有效率。

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返回的ID。

示例

var watchID = navigator.compass.watchHeading(onSuccess, onError, options);

// ... later on ...

navigator.compass.clearWatch(watchID);

CompassHeading

A CompassHeading对象被返回给compassSuccess回调函数。

属性

  • magneticHeading:在某一特定时刻的0-359.99度内的航向。 (数字)

  • trueHeading:在某一特定时刻相对于地理北极的0-359.99度内的航向。负值表示无法确定真实航向。 (数字)

  • headingAccuracy:报告航向与真实航向之间的偏差(以度为单位)。 (数字)

  • timestamp:此航向被确定的时间。 (DOMTimeStamp)

Amazon Fire OS怪癖

  • trueHeading不受支持,但报告与magneticHeading相同的值

  • headingAccuracy始终为0,因为magneticHeadingtrueHeading之间没有差异

Android怪癖

  • trueHeading属性不受支持,但报告与magneticHeading相同的值。

  • headingAccuracy属性始终为0,因为magneticHeadingtrueHeading之间没有差异。

Firefox OS怪癖

  • trueHeading属性不受支持,但报告与magneticHeading相同的值。

  • headingAccuracy属性始终为0,因为magneticHeadingtrueHeading之间没有差异。

iOS怪癖

  • trueHeading属性仅当通过navigator.geolocation.watchLocation()启用位置服务时返回。

罗盘错误

当发生错误时,将返回一个 CompassError 对象传递给 compassError 回调函数。

属性

  • code:以下预定义错误代码之一。

常量

  • CompassError.COMPASS_INTERNAL_ERR
  • CompassError.COMPASS_NOT_SUPPORTED