swan.onCompassChange

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

解释:监听罗盘数据,频率:5 次/秒,接口调用后会自动开始监听,可使用 swan.stopCompass 停止监听。
Web 态说明:由于浏览器对于 W3C 规范的实现差异,onCompassChange 功能在部分浏览器(比如 Safari 浏览器)下不可用,在功能不可用的情况下,该方法的事件回调不会被触发,但该方法会返回一个错误对象。

方法参数

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 不是一个标准的精度枚举值

示例

跳转编辑工具

在开发者工具中打开

在 WEB IDE 中打开

扫码体验

代码示例

百度智能小程序

请使用百度APP扫码

图片示例

swan.onCompassChange - 图2

代码示例

  • SWAN
  • JS
  1. <view class="card-area">
  2. <view class="wrap">
  3. <view class="page-top">
  4. <view class="tip-week">{{title}}</view>
  5. </view>
  6. <view class="direction">
  7. <view class="bg-compass-line"></view>
  8. <view class="bg-compass" style="transform: rotate(-{{direction}}deg)">
  9. <view class="num num0" style="transform: rotate({{direction}}deg)">0</view>
  10. <view class="num num90" style="transform: rotate({{direction}}deg)">90</view>
  11. <view class="num num180" style="transform: rotate({{direction}}deg)">180</view>
  12. <view class="num num270" style="transform: rotate({{direction}}deg)">270</view>
  13. </view>
  14. <div class="cg-wrap">
  15. <div class="circle-left-wrap"><div class="circle-left" style="transform:rotate({{leftdeg}}deg);transform-origin:50% 50%"></div></div>
  16. <div class="circle-right-wrap"><div class="circle-right" style="transform:rotate({{rightdeg}}deg);transform-origin:50% 50%"></div></div>
  17. <div class="mask">
  18. <view class="direction-num">
  19. <text>{{direction}}</text>
  20. <text class="direction-degree"></text>
  21. </view>
  22. </div>
  23. </div>
  24. </view>
  25. <view class="page-body-btn">
  26. <view class="middle-btn {{!isWatch ? '' : 'disabled'}}" bind:tap="startWatch">开始监听</view>
  27. <view class="middle-btn {{!isWatch ? 'disabled' : ''}}" bind:tap="stopWatch">停止监听</view >
  28. </view>
  29. </view>
  30. </view>

错误码

Android

错误码说明

1001

执行失败

iOS

错误码说明

202

解析失败,请检查参数是否正确

1001

设备不支持