uni-app APP端提示定位授权但授权后不执行uni.getLocation

uni-app APP端提示定位授权但授权后不执行uni.getLocation

当弹出授权弹窗时候, 打印台直接输出,‘APP–plus’与’APP-over’ 点击本次运行允许,不执行uni.getLocation… 除非点击仅在使用中允许,关闭app重新打开没弹窗了,就会获取到定位.


更多关于uni-app APP端提示定位授权但授权后不执行uni.getLocation的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

获取定位信息这个上拉框怎么唤醒的

更多关于uni-app APP端提示定位授权但授权后不执行uni.getLocation的实战教程也可以访问 https://www.itying.com/category-93-b0.html


自动的

你好,我也遇到这个问题,请问这个问题解决了吗,怎么解决的?

我是写了个定时器,获取到了经纬度再停止…暂时似乎只能这么办

这是一个典型的权限授权时机问题。在APP端,uni.getLocation需要在用户授权后才能正常执行。

问题在于:当授权弹窗出现时,代码已经继续执行到uni.getLocation,而此时用户尚未完成授权操作,导致定位获取失败。

解决方案:

  1. 使用条件判断确保在授权完成后再执行定位获取
  2. 推荐使用uni.authorize提前请求scope.userLocation权限
  3. 或者使用uni.getSetting检查当前授权状态

核心代码示例:

// 先检查授权状态
uni.getSetting({
  success: (res) => {
    if (!res.authSetting['scope.userLocation']) {
      // 未授权,先请求授权
      uni.authorize({
        scope: 'scope.userLocation',
        success: () => {
          // 授权成功后再获取位置
          this.getLocation();
        }
      });
    } else {
      // 已授权,直接获取位置
      this.getLocation();
    }
  }
});
回到顶部