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);