全部产品
云市场
云游戏

动作检测 WVMotion

更新时间:2019-01-14 16:37:59

WVMotion.listenBlow

开启吹气动作的监听。

输入参数

  • [number] time - [可选]吹气事件的时间间隔(秒),在用户吹气的过程中,会每隔指定时间引发一次吹气事件,默认为 0,由系统自动决定(仅限 WindVane iOS)。

回调参数

无回调参数,如果成功开启了吹气的监听,则进入 success 回调,否则进入 failure 回调。

监听事件

motion.blow 在开启吹气动作的监听时,用户进行了吹气。

事件参数:

  • [number] pass - 吹气检测值,该值随着硬件的不同有所不同:在 iOS 平台,该值为 [0, 1] 区间范围值,伴随着吹气过程,该值逐渐增大;在 Android 平台,该值始终为 1
  1. document.addEventListener('motion.blow', function(e) {
  2. alert('检测到吹气');
  3. }, false);
  4. window.WindVane.call('WVMotion', 'listenBlow', {}, function(e) {
  5. alert('success');
  6. }, function(e) {
  7. alert('failure:' + JSON.stringify(e));
  8. });

WVMotion.stopListenBlow

停止吹气动作的监听。

输入参数

无输入参数。

回调参数

无回调参数,总是进入 success 回调。

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

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]
  1. document.addEventListener('motion.gyro', function(e) {
  2. alert('检测到手机方向改变');
  3. }, false);
  4. var params = {
  5. // 是开启还是关闭陀螺仪的监听
  6. on: true,
  7. // 陀螺仪事件的时间间隔
  8. frequency: 100
  9. };
  10. window.WindVane.call('WVMotion', 'listenGyro', params, function(e) {
  11. alert('success');
  12. }, function(e) {
  13. alert('failure:' + JSON.stringify(e));
  14. });

WVMotion.listeningShake

开启或关闭摇动的监听。

输入参数

  • [boolean] on - 是开启还是关闭摇动的监听,true 表示开启监听,false 表示关闭监听。
  • [number] frequency - [可选]摇动事件的时间间隔(毫秒),会保证两次摇动事件触发的时间间隔大于指定时间,默认为 500
  • [number] shakeThreshold - [可选]摇动敏感度,加速度超过敏感度就认为是一次有效摇动,默认为 1.2VER.WindVane iOS 8.1.0 或更高)。
  • [number] shakeNum - [可选]摇动次数,仅当摇动了指定次数后才会触发一次摇动事件,默认为 1VER.WindVane iOS 8.1.0 或更高)。

回调参数

无回调参数,如果成功开启或关闭了摇动的监听,则进入 success 回调,否则进入 failure 回调。

监听事件

motion.shake 在开启摇动的监听时,用户摇动了手机。

事件参数(VER.仅限 WindVane iOS):

  • [number] x - 手机 x 方向上的加速度。
  • [number] y - 手机 y 方向上的加速度。
  • [number] z - 手机 z 方向上的加速度。
  1. document.addEventListener('motion.shake', function(e) {
  2. alert('检测到摇动');
  3. }, false);
  4. var params = {
  5. // 是开启还是关闭摇动的监听
  6. on: true
  7. };
  8. window.WindVane.call('WVMotion', 'listeningShake', params, function(e) {
  9. alert('success');
  10. }, function(e) {
  11. alert('failure: ' + JSON.stringify(e));
  12. })

WVMotion.vibrate

令手机震动。

输入参数

  • [int] duration - [可选]震动的持续时间(毫秒),默认由系统自动决定(仅限 WindVane Android,且部分机型该参数无效)。

回调参数

无回调参数,总是进入 success 回调。

  1. window.WindVane.call('WVMotion', 'vibrate', {});
  2. var params = {
  3. // 震动的持续时间
  4. duration: 7000
  5. };
  6. window.WindVane.call('WVMotion', 'vibrate', params);