swan.onCompassChange

工具和真机中的实现有区别,详见API 实现差异

解释:监听罗盘数据,频率:5次/秒,接口调用后会自动开始监听,可使用swan.stopCompass停止监听。

# 方法参数

Function callback

# callback参数说明

属性名 类型 说明 最低支持版本
direction Number 面对的方向度数
accuracy iOS : Number
Android :String
精度
iOS:表示相对于磁北极的偏差。0 表示设备指向磁北,90 表示指向东,180 表示指向南。
Android:枚举值详见下表。
3.150.1

# accuracy 参数说明

仅适用于 Android。

说明
high 高精度
medium 中等精度
low 低精度
no-contact 不可信,传感器失去连接
unreliable 不可信,原因未知
unknow ${value} 未知的精度枚举值,即该 Android 系统此时返回的表示精度的 value 不是一个标准的精度枚举值。

# 示例

在开发者工具中预览效果

# 扫码体验

请使用百度APP扫码

# 图片示例

# 代码示例

  • 在 js 文件中
Page({
    onReady() {
        let that = this;
        swan.onCompassChange(function (res) {
            that.setData({
                direction: parseInt(res.direction, 10)
            });
            that.updateProgress(res.direction);
        });
    },
    updateProgress(direction) {
        let leftdeg;
        let rightdeg;
        let deg = +direction;
        if (deg > 180) {
            leftdeg = 180;
            rightdeg = 180 - deg;
        } else {
            leftdeg = -deg;
            rightdeg = 0;
        }
        this.setData({
            leftdeg: leftdeg,
            rightdeg: rightdeg
        });
    }
});

# 错误码

# Android

错误码 说明
1001 执行失败

# iOS

错误码 说明
202 解析失败,请检查参数是否正确
1001 设备不支持