swan.onCompassChange
工具和真机中的实现有区别,详见API 实现差异
解释:监听罗盘数据,频率:5 次/秒,接口调用后会自动开始监听,可使用 swan.stopCompass 停止监听。
Web 态说明:由于浏览器对于 W3C 规范的实现差异,onCompassChange 功能在部分浏览器(比如 Safari 浏览器)下不可用,在功能不可用的情况下,该方法的事件回调不会被触发,但该方法会返回一个错误对象。
方法参数
Function callback
callback 返回参数说明
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
direction | Number | 面对的方向度数 | |
accuracy | iOS : Number | 精度 | 3.150.1 |
accuracy 参数说明
仅适用于 Android。
值 | 说明 |
---|---|
high | 高精度 |
medium | 中等精度 |
low | 低精度 |
no-contact | 不可信,传感器失去连接 |
unreliable | 不可信,原因未知 |
unknow ${value} | 未知的精度枚举值,即该 Android 系统此时返回的表示精度的 value 不是一个标准的精度枚举值 |
示例
跳转编辑工具
扫码体验
代码示例
请使用百度APP扫码
图片示例
代码示例
- SWAN
- JS
<view class="card-area">
<view class="wrap">
<view class="page-top">
<view class="tip-week">{{title}}</view>
</view>
<view class="direction">
<view class="bg-compass-line"></view>
<view class="bg-compass" style="transform: rotate(-{{direction}}deg)">
<view class="num num0" style="transform: rotate({{direction}}deg)">0</view>
<view class="num num90" style="transform: rotate({{direction}}deg)">90</view>
<view class="num num180" style="transform: rotate({{direction}}deg)">180</view>
<view class="num num270" style="transform: rotate({{direction}}deg)">270</view>
</view>
<div class="cg-wrap">
<div class="circle-left-wrap"><div class="circle-left" style="transform:rotate({{leftdeg}}deg);transform-origin:50% 50%"></div></div>
<div class="circle-right-wrap"><div class="circle-right" style="transform:rotate({{rightdeg}}deg);transform-origin:50% 50%"></div></div>
<div class="mask">
<view class="direction-num">
<text>{{direction}}</text>
<text class="direction-degree"></text>
</view>
</div>
</div>
</view>
<view class="page-body-btn">
<view class="middle-btn {{!isWatch ? '' : 'disabled'}}" bind:tap="startWatch">开始监听</view>
<view class="middle-btn {{!isWatch ? 'disabled' : ''}}" bind:tap="stopWatch">停止监听</view >
</view>
</view>
</view>
错误码
Android
错误码 | 说明 |
---|---|
1001 | 执行失败 |
iOS
错误码 | 说明 |
---|---|
202 | 解析失败,请检查参数是否正确 |
1001 | 设备不支持 |