cordova-plugin-device-motion 1.2.2

cordova-plugin-device-motion 1.2.2

测试已测试
语言语言 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-motion

此插件提供对设备加速度计的访问。加速度计是一个运动传感器,可以检测相对于当前设备方向沿xyz轴的运动变化(delta)。

通过全局navigator.accelerometer对象访问。

虽然对象附加到全局作用域的navigator,但必须在deviceready事件之后才能使用。

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log(navigator.accelerometer);
}

Apache Cordova问题跟踪器上报告此插件的问题

安装

cordova plugin add cordova-plugin-device-motion

支持的平台

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • 浏览器
  • Firefox OS
  • iOS
  • Tizen
  • Windows Phone 8
  • Windows

方法

  • navigator.accelerometer.getCurrentAcceleration
  • navigator.accelerometer.watchAcceleration
  • navigator.accelerometer.clearWatch

对象

  • 加速度

navigator.accelerometer.getCurrentAcceleration

获取沿xyz轴的当前加速度。

这些加速度值将返回到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运动值都是随机生成的。

Android怪癖

加速度计使用SENSOR_DELAY_UI标志调用,该标志限制最大读取频率在20到60 Hz之间,具体取决于设备。对应更高频率的周期值会导致重复样本。更多细节可以在Android API指南中找到。

iOS 特性

  • iOS 不认可在任何特定点上获取当前加速度的概念。

  • 您必须监控加速度并在特定时间间隔捕获数据。

  • 因此,getCurrentAcceleration函数返回来自watchAccelerometer调用报告的最后一个值。

navigator.accelerometer.watchAcceleration

以常规间隔检索设备的当前Acceleration,每次都执行accelerometerSuccess回调函数。通过accelerometerOptions对象中的frequency参数指定间隔(毫秒)。

返回的监视ID引用了加速度计的监视间隔,可以用navigator.accelerometer.clearWatch来停止监视加速度计。

var watchID = navigator.accelerometer.watchAcceleration(accelerometerSuccess,
                                                       accelerometerError,
                                                       accelerometerOptions);
  • accelerometerOptions:一个包含以下可选键的对象
    • frequency:请求以毫秒为单位的加速度数据调用到加速度计成功的频率。 (Number)(默认: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在请求的间隔内调用成功回调函数,但将请求的范围限制在设备之间的40ms到1000ms之间。例如,如果您请求3秒(3000ms)的间隔,API将每秒从设备请求一次数据,但每3秒才执行一次成功回调。

navigator.accelerometer.clearWatch

停止监视由watchID参数引用的Acceleration

navigator.accelerometer.clearWatch(watchID);
  • watchID:由navigator.accelerometer.watchAcceleration返回的ID。

示例

var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);

// ... later on ...

navigator.accelerometer.clearWatch(watchID);

加速度

包含在特定时间点捕获的Accelerometer数据。加速度值包括重力效应(9.81 m/s^2),因此当设备平放并且向上 facing 时,返回的xyz值应为009.81

属性

  • x:x轴上的加速度量。(以 m/s^2 为单位) (Number)
  • y:y轴上的加速度量。(以 m/s^2 为单位) (Number)
  • z:z轴上的加速度量。(以 m/s^2 为单位) (Number)
  • timestamp:创建时间戳(以毫秒为单位)。 (DOMTimeStamp)