1.4.2 方向传感器
优质
小牛编辑
129浏览
2023-12-01
监听手机方向
在手机淘宝中:这里的监听陀螺仪, 实际是为了监听手机方向的改变 ,使得 H5 页面可以根据手机方向做出不同反应。在手机中,有两个传感器可以实现这一目的:陀螺仪和重力感应器。陀螺仪可以得到手机空间位置的欧拉角:roll、pitch 和 yaw,重力感应器则可以得到重力在手机三个方向上的分量。 但是,由于在 iOS 和 Android 平台下得到的陀螺仪数据暂时难以统一,而重力感应器的数据更加容易统一,因此 目前采用重力感应器的数据作为返回值 ,H5 页面可以通过相关算法计算得到手机方向。
var watchId = Tida.orientation.watch({
duration : 50 // 陀螺仪事件的时间间隔(毫秒),会保证两次陀螺仪事件触发的时间间隔大于指定时间。
}, function(result) {
if (result.errorCode) {
Tida.toast(result.errorCode + ' , ' + result.errorMessage);
return;
}
//if(navigator.userAgent.indexOf("AliApp(TB")>-1){
//[number] result.x - 手机 x 方向上的重力分量值,范围是 [-1, 1]。
//[number] result.y - 手机 y 方向上的重力分量值,范围是 [-1, 1]。
//[number] result.z - 手机 z 方向上的重力分量值,范围是 [-1, 1]。
if(result.x ||result.y||result.z){
// 这里就没有alpha beta gamma
}
// 当然 这里需要有个deviceOrientationHandler的函数了 这里的值与web给的值是一致的
deviceOrientationHandler(result.gamma, result.beta, result.alpha);
});
取消监听手机方向
Tida.orientation.clearWatch(watchId);