全部產品
Search
文件中心

SuperApp:動作檢測

更新時間:Oct 29, 2024

本文介紹動作檢測類WVMotion相關的JS API,供您建立H5端應用或者小程式時參考。動作檢測類WVMotion的JSAPI提供監聽動作的相關能力,例如開啟和停止吹氣動作的監聽、令手機震動。

WVMotion.listenBlow

開啟吹氣動作的監聽。

輸入參數

  • [number]time:(可選)吹氣事件的時間間隔(單位:秒),在使用者吹氣的過程中,會每隔指定時間引發一次吹氣事件。在iOS平台,該值為[0, 1] 區間範圍值,預設為0(由系統自動決定),伴隨著吹氣過程,該值逐漸增大。

回調參數

無回調參數,如果成功開啟了吹氣的監聽,則進入success回調,否則進入failure回調。

監聽事件

motion.blow在開啟吹氣動作的監聽時,使用者進行了吹氣。

事件參數:

  • [number]pass:吹氣檢測值,該值隨著硬體的不同有所不同。在iOS平台,該值為[0, 1] 區間範圍值,伴隨著吹氣過程,該值逐漸增大。在Android平台,該值始終為1

document.addEventListener('motion.blow', function(e) {
        alert('檢測到吹氣');
}, false);

window.WindVane.call('WVMotion', 'listenBlow', {}, function(e) {
        alert('success');
}, function(e) {
        alert('failure:' + JSON.stringify(e));
});

WVMotion.stopListenBlow

停止吹氣動作的監聽。

輸入參數

無輸入參數。

回調參數

無回調參數,總是進入success回調。

window.WindVane.call('WVMotion', 'stopListenBlow', {}, function(e) {
        alert('success');
});

WVMotion.listenGyro

開啟或關閉陀螺儀的監聽。

監聽陀螺儀,目的是為了監聽手機方向的改變 ,使得H5頁面可以根據手機方向做出不同反應。在手機中,有兩個感應器可以實現這一目的:陀螺儀和重力感應器。陀螺儀可以得到手機空間位置的歐拉角:roll、pitch 和 yaw,重力感應器則可以得到重力在手機三個方向上的分量。

由於在iOS和Android平台下得到的陀螺儀資料暫時難以統一,而重力感應器的資料更加容易統一,因此目前採用重力感應器的資料作為傳回值 ,H5頁面可以通過相關演算法計算得到手機方向。

輸入參數

  • [boolean]on:開啟還是關閉陀螺儀的監聽,true表示開啟監聽,false表示關閉監聽。

  • [number]frequency:指定陀螺儀事件的時間間隔(單位:毫秒)。指定該時間間隔後,系統在觸發陀螺儀事件時,會保證兩次事件的觸發時間間隔大於指定時間間隔。

回調參數

無回調參數,如果成功開啟或關閉了陀螺儀的監聽,則進入success回調,否則進入failure回調。

監聽事件

motion.gyro在開啟陀螺儀的監聽時,手機的方向發生了變化。

事件參數:

  • [number] x:手機x方向上的重力分量值,範圍是[-1, 1]

  • [number] y:手機y方向上的重力分量值,範圍是[-1, 1]

  • [number] z:手機z方向上的重力分量值,範圍是[-1, 1]

document.addEventListener('motion.gyro', function(e) {
        alert('檢測到手機方向改變');
}, false);

var params = {
        // 是開啟還是關閉陀螺儀的監聽
        on: true,
        // 陀螺儀事件的時間間隔
        frequency: 100
};
window.WindVane.call('WVMotion', 'listenGyro', params, function(e) {
        alert('success');
}, function(e) {
        alert('failure:' + JSON.stringify(e));
});

WVMotion.listeningShake

開啟或關閉搖動的監聽。

輸入參數

  • [boolean]on:是開啟還是關閉搖動的監聽,true表示開啟監聽,false表示關閉監聽。

  • [number]frequency:(可選)搖動事件的時間間隔(單位:毫秒),會保證兩次搖動事件觸發的時間間隔大於指定時間,預設為500

  • [number]shakeThreshold:(可選)搖動敏感度,加速度超過敏感度就認為是一次有效搖動,預設為1.2

  • [number]shakeNum:(可選)搖動次數,僅當搖動了指定次數後才會觸發一次搖動事件,預設為1

回調參數

無回調參數,如果成功開啟或關閉了搖動的監聽,則進入success回調,否則進入failure 回調。

監聽事件

motion.shake 在開啟搖動的監聽時,使用者搖動了手機。

事件參數:

  • [number] x:手機x方向上的加速度。

  • [number] y:手機y方向上的加速度。

  • [number] z:手機z方向上的加速度。

document.addEventListener('motion.shake', function(e) {
        alert('檢測到搖動');
}, false);

var params = {
        // 是開啟還是關閉搖動的監聽
        on: true
};
window.WindVane.call('WVMotion', 'listeningShake', params, function(e) {
        alert('success');
}, function(e) {
        alert('failure: ' + JSON.stringify(e));
})

WVMotion.vibrate

令手機震動。

輸入參數

  • [int]duration:(可選)震動的期間(毫秒),預設由系統自動決定(僅限 WindVane Android,由於機型差異,可能存在在某些機型上參數不生效的問題)。

回調參數

無回調參數,總是進入success回調。

window.WindVane.call('WVMotion', 'vibrate', {});

var params = {
        // 震動的期間
        duration: 7000
};
window.WindVane.call('WVMotion', 'vibrate', params);

WVMotion.startAccelerometer

說明

該API只在Windvane Android 1.0.3.4以上版本有效。

開始監聽加速度資料。

輸入參數

  • [string] interval:可選,監聽加速度資料回呼函數的執行頻率,預設是'normal',可選值有:

    • ui:適用於更新UI的回調頻率,在60ms/次左右。

    • game:適用於更新遊戲的回調頻率,在20ms/次左右。

    • normal:普通的回調頻率,在200ms/次左右。

回調參數

成功回調參數:

  • 無回調參數。

失敗回調參數:

  • [string] msg:失敗的資訊。

監聽事件

WVMotion.Event.accelerometer

擷取加速度資料成功。

事件參數:

  • [float] x:X軸資料。

  • [float] y:Y軸資料。

  • [float] z:Z軸資料。

document.addEventListener('WVMotion.Event.accelerometer', function (e) {
        alert('event accelerometer: ' + JSON.stringify(e.param));
});

var params = {
  interval: 'normal'
};

window.WindVane.call('WVMotion', 'startAccelerometer', params, function(e) {
}, function(e) {
        alert('startAccelerometer failure: ' + JSON.stringify(e));
});

WVMotion.stopAccelerometer

說明

該API只在Windvane Android 1.0.3.4以上版本有效。

停止監聽加速度資料。

輸入參數

  • 無輸入參數。

回調參數

無回調參數,總是進入success回調。

window.WindVane.call('WVMotion', 'stopAccelerometer', {});

WVMotion.startCompass

說明

該API只在Windvane Android 1.0.3.4以上版本有效。

開始監聽羅盤資料。

輸入參數

  • [string] interval:[可選], 監聽加速度資料回呼函數的執行頻率,預設是'normal',可選值有:

    • ui - 適用於更新UI的回調頻率,在60ms/次左右

    • game - 適用於更新遊戲的毀掉頻率,在20ms/次左右

    • normal - 普通的回調頻率,在200ms/次左右

回調參數

成功回調參數:

  • 無回調參數。

失敗回調參數:

  • [string] msg:失敗的資訊。

監聽事件

WVMotion.Event.compass

擷取羅盤資料成功。

事件參數:

  • [float] direction:面對的方向與正北方向的度數 [0, 360)。

  • [long] timestamp:時間戳記。

document.addEventListener('WVMotion.Event.compass', function (e) {
        alert('event compass: ' + JSON.stringify(e.param));
});

var params = {
  interval: 'normal'
};

window.WindVane.call('WVMotion', 'startCompass', params, function(e) {
}, function(e) {
        alert('startCompass failure: ' + JSON.stringify(e));
});

WVMotion.stopCompass

說明

該API只在Windvane Android 1.0.3.4以上版本有效。

停止監聽羅盤資料。

輸入參數

  • 無輸入參數。

回調參數

無回調參數,總是進入success回調。

window.WindVane.call('WVMotion', 'stopCompass', {});