前端劝退师
前端劝退师
  • 发布:2024-08-26 09:50
  • 更新:2024-08-29 04:45
  • 阅读:261

【报Bug】mate60 map地图位置显示不准确

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 家庭中文版

HBuilderX类型: 正式

HBuilderX版本号: 4.24

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: HUAWEI Mate 60

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
getLoaction() {  
  this.marker = []; //定位图标  
  this.circles = [];  
  let _this = this;  
  if (this.limitsOfAuthorityFlag == 0) {  
    plus.android.requestPermissions(  
      [  
        "android.permission.ACCESS_FINE_LOCATION",  
        "android.permission.ACCESS_COARSE_LOCATION",  
      ],  
      (resultObj) => {  
        let result = 0;  
        for (var i = 0; i < resultObj.granted.length; i++) {  
          result = 1;  
        }  
        for (var i = 0; i < resultObj.deniedPresent.length; i++) {  
          result = 0;  
        }  
        for (var i = 0; i < resultObj.deniedAlways.length; i++) {  
          result = -1;  
        }  
        if (result == 1) {  
          this.limitsOfAuthorityFlag = 0;  
          uni.getLocation({  
            type: "gcj02",  
            geocode: true,  
            success: function (loaction) {  
              _this.latitude = loaction.latitude;  
              _this.longitude = loaction.longitude;  
              let { city, district, street, streetNum } = loaction.address;  
              setTimeout(() => {  
                _this.currentAddress = city + district + street + streetNum;  
                //图标  
                _this.marker[0] = {  
                  id: 1,  
                  iconPath: "/static/images/positioningIcon.png",  
                  latitude: loaction.latitude,  
                  longitude: loaction.longitude,  
                  width: 5,  
                  height: 5,  
                  anchor: { x: 0.5, y: 1 },  
                  label: {  
                    content: _this.currentAddress,  
                    color: "#ffffff",  
                    fontSize: 15,  
                  },  
                };  
              }, 50);  

              _this.$forceUpdate();  
            },  
            fail: function (error) {  
              uni.showToast({  
                title: "定位失败!",  
                icon: "error",  
              });  
            },  
          });  
        } else {  
          this.limitsOfAuthorityFlag = 1;  
          uni.showModal({  
            title: "无法访问位置",  
            content:  
              "请打开位置定位功能(点击确定后在权限管理中授权位置权限)",  
            showCancel: true, // 不显示取消按钮  
            success(res) {  
              if (res.confirm) {  
                _this.limitsOfAuthorityFlag = 0;  
                uni.openAppAuthorizeSetting({  
                  success(res) {},  
                });  
              }  
            },  
          });  
        }  
      },  
      (error) => {}  
    );  
  }  
},

操作步骤:

打开定位页面,显示当前位置,然后移动一段距离,再打开定位页面,当前位置显示还是之前的定位,目前mate60出现这种情况,其他手机(小米)均正常

预期结果:

打开定位功能能正常显示当前位置

实际结果:

未正确显示当前位置

bug描述:

能正常调用高德api,经客户反馈地图定位不准确
经客户使用其他第三方导航定位显示当前位置如下图1:
客户使用我方app打开定位,位置不准确如图2:
使用第三方导航显示当前位置与我方APP显示当前位置差异性如图3:

2024-08-26 09:50 负责人:DCloud_App_Array 分享
已邀请:
前端劝退师

前端劝退师 (作者) - 一个前端

两个定位差差异

BoredApe

BoredApe - 有问题就会有答案。

  • 前端劝退师 (作者)

    其他手机显示都是正确的

    2024-08-26 10:02

DCloud_heavensoft

DCloud_heavensoft

确认你的包是不是4.24版本的HBuilderX打包的,因为之前高德sdk升级过,解决华为mate的适配问题。注意看release

  • 前端劝退师 (作者)

    是4.24版本打的包

    2024-08-29 09:16

  • 前端劝退师 (作者)

    我看了一下4.24的更新内容,更新了uni.chooseLocation,但是我调用的是uni.getLocation,能正常调用,就是当前位置显示不正确

    2024-08-29 09:23

  • 前端劝退师 (作者)

    复现步骤:打开定位页面,显示当前位置,然后移动一段距离,再打开定位页面,当前位置显示还是之前的定位,目前mate60出现这种情况,其他手机(小米)均正常

    2024-08-29 10:00

  • DCloud_heavensoft

    回复 前端劝退师: 如果是离线打包,或者cli,需要升级离线打包sdk和cli

    2024-08-29 18:16

  • DCloud_heavensoft

    回复 前端劝退师: 移动一段距离才能重现?

    2024-08-29 18:16

  • 前端劝退师 (作者)

    回复 DCloud_heavensoft: 用的是云打包,还有一个奇怪的地方就是,如果用户重启手机,在进行定位,当前定位正确的

    2024-08-30 08:57

  • 前端劝退师 (作者)

    回复 DCloud_heavensoft: 是的

    2024-08-30 09:25

要回复问题请先登录注册