本文介绍动作检测类WVMotion相关的JS API,供您在通过跨平台DevOps创建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', {});