m***@163.com
m***@163.com
  • 发布:2024-01-10 18:38
  • 更新:2024-01-15 17:51
  • 阅读:240

【报Bug】onCompassChange在h5端,不同手机获取到的值不一样,重新进去页面时,同一部手机获取到的值与上一次获取到的值也不一样,偏差太大了

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 19045.3803

HBuilderX类型: 正式

HBuilderX版本号: 3.99

手机系统: Android

手机系统版本号: Android 14

手机厂商: VIVO, IPHONE

手机机型: iq00 z3,苹果XR

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template>  
  <view>  
    <text>当前经度: {{ longitude }}</text>  
    <text>当前纬度: {{ latitude }}</text>  
    <text>当前方向: {{ direction }}</text>  
  </view>  
</template>  

<script>  
export default {  
  data() {  
    return {  
      longitude: '', // 当前经度  
      latitude: '', // 当前纬度  
      direction: '' // 当前方向  
    };  
  },  
  mounted() {  
    this.initCompass();  
  },  
  methods: {  
    initCompass() {  
      uni.getLocation({  
        type: 'gcj02',  
        success: (res) => {  
          this.longitude = res.longitude;  
          this.latitude = res.latitude;  

          // 监听设备方向变化  
          uni.onCompassChange((res) => {  
            this.direction = res.direction;  
          });  

          // 开始监听设备方向  
          uni.startCompass();  
        },  
        fail: (error) => {  
          console.log('获取位置失败', error);  
        }  
      });  
    }  
  },  
  onUnload() {  
    uni.stopCompass(); // 停止监听设备方向  
  }  
};  
</script>

操作步骤:

多台手机测试,同一个方向结果会不同,同一台手机,第一次进去与第n次进入时,保持角度不变,获取到的值也有可能不一致,偏差太大

预期结果:

同一台手机,不管进去多少次,值会有一点偏差,但不至于偏差超过45°那么夸张,不同手机的偏差值也太大了

实际结果:

偏差太大了,苹果和安卓有时候角度一直,偏差甚至超过180°了

bug描述:

onCompassChange在h5端,不同手机获取到的值不一样,重新进去页面时,同一部手机获取到的值与上一次获取到的值也不一样
2024-01-10 18:38 负责人:无 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

api 的具体返回值是微信小程序返回的,可以到微信社区进行搜索和反馈。关联问题 https://developers.weixin.qq.com/community/search?query=onCompassChange

要回复问题请先登录注册