tree: 5f535df6a9e7582494ab77cbd91370e645a9ab59 [path history] [tgz]
  1. index.md
  2. README.md
doc/zh/README.md

cordova-plugin-device-motion

Build Status

這個外掛程式提供了對設備的加速度計的訪問。 加速度計是動作感應器檢測到的更改 (三角洲) 在相對於當前的設備方向,在三個維度沿xyz軸運動。

訪問是通過一個全球 navigator.accelerometer 物件。

雖然該物件附加到全球範圍內 導航器,它不可用直到 deviceready 事件之後。

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

安裝

cordova plugin add cordova-plugin-device-motion

支援的平臺

  • 亞馬遜火 OS
  • Android 系統
  • 黑莓 10
  • 瀏覽器
  • 火狐瀏覽器作業系統
  • 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 議案是所有中隨機生成的訂單來類比加速度感應器。

iOS 的怪癖

  • iOS 不會認識到在任何給定的點獲取當前加速度的概念。

  • 你必須看加速和捕獲的資料在特定的時間間隔。

  • 因此, getCurrentAcceleration 收益率從報告的最後一個值的函數 watchAccelerometer 調用。

navigator.accelerometer.watchAcceleration

在週期性時間間隔,執行 accelerometerSuccess 回呼函數每次檢索設備的當前 Accelerometer。 指定的間隔,以毫秒為單位通過 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 呼叫成功的回呼函數在時間間隔的要求,但將請求的範圍限制為 40ms年之間裝置和 1000ms。 例如,如果您請求的時間間隔為 3 秒,(3000ms),API 請求資料從設備每隔 1 秒,但只是執行成功回檔每 3 秒。

navigator.accelerometer.clearWatch

別看 watchID 參數所引用的 Accelerometer

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

示例

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

// ... later on ...

navigator.accelerometer.clearWatch(watchID);

加速度

包含在時間中捕獲的特定點的 Accekerometer 資料。 加速度值包括重力的作用 (9.81 m/s ^2),這樣當設備在於扁和朝上,xyz 返回的值應該是 度和 9.81.

屬性

  • x: 在 X 軸上的加速度量。(在 m/s ^2)(人數)
  • y: 在 y 軸上的加速度量。(在 m/s ^2)(人數)
  • z: 在 Z 軸上的加速度量。(在 m/s ^2)(人數)
  • timestamp: 創建時間戳記以毫秒為單位。() DOMTimeStamp