uni-app hbuildx更新版本4.0.6后使用高德定位经常返回缺少定位权限 有时正常 之前版本无此问题

uni-app hbuildx更新版本4.0.6后使用高德定位经常返回缺少定位权限 有时正常 之前版本无此问题

4 回复

同样遇到这个问题了,时好时坏,失败后就一直不行。

更多关于uni-app hbuildx更新版本4.0.6后使用高德定位经常返回缺少定位权限 有时正常 之前版本无此问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


hbuildx 回退到4.0.6之前的版本打包就好了

相同的问题,请尽快解决4.07也不能用,已经检查了locationAuthorized,是有授权的

在 uni-app 中使用 HBuilderX 4.0.6 版本后,出现高德定位返回“缺少定位权限”的问题,可能是由于以下几个方面引起的。以下是一些可能的解决方案:


1. 检查权限配置

确保在 manifest.json 中正确配置了定位权限。例如:

{
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          "android.permission.ACCESS_FINE_LOCATION",
          "android.permission.ACCESS_COARSE_LOCATION"
        ]
      }
    }
  }
}

如果是 iOS,还需要在 manifest.json 中添加:

{
  "app-plus": {
    "distribute": {
      "ios": {
        "NSLocationWhenInUseUsageDescription": "需要定位权限以提供更好的服务"
      }
    }
  }
}

2. 动态申请权限

在代码中动态申请定位权限,确保用户授权后再调用定位功能。可以使用 uni-app 的权限 API:

uni.authorize({
  scope: 'scope.location',
  success() {
    // 用户已授权
    this.startLocation();
  },
  fail() {
    // 用户拒绝授权
    uni.showToast({
      title: '需要定位权限',
      icon: 'none'
    });
  }
});

3. 检查高德地图配置

确保在 manifest.json 中正确配置了高德地图的 AppKey:

{
  "app-plus": {
    "maps": {
      "amap": {
        "appkey_android": "你的高德地图Android AppKey",
        "appkey_ios": "你的高德地图iOS AppKey"
      }
    }
  }
}

4. 更新高德地图插件

如果使用的是高德地图的原生插件,尝试更新到最新版本。可以通过以下步骤更新:

  1. 打开 HBuilderX。
  2. 进入 manifest.json -> App原生插件配置
  3. 检查并更新高德地图插件。

5. 检查 HBuilderX 版本兼容性

HBuilderX 4.0.6 可能存在某些兼容性问题。可以尝试以下方法:

  • 回退到之前的稳定版本(如 3.6.16)。
  • 关注 HBuilderX 的更新日志,等待官方修复。

6. 调试日志

在定位失败时,打印详细的错误信息,帮助排查问题:

uni.getLocation({
  type: 'wgs84',
  success(res) {
    console.log('定位成功', res);
  },
  fail(err) {
    console.error('定位失败', err);
  }
});
回到顶部