uni-app 首次拒绝授权(不再提醒)后,在应用设置界面开启授权无法获取定位权限

uni-app 首次拒绝授权(不再提醒)后,在应用设置界面开启授权无法获取定位权限

开发环境 版本号 项目创建方式
Windows 1909 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.1.7

手机系统:Android

手机系统版本号:Android 10

手机厂商:魅族

手机机型:魅族17

页面类型:vue

打包方式:云端

App下载地址或H5网址:http://boss.liecaizhijia.com/download/bosiquan.apk

示例代码:

获取定位代码:
uni.getLocation({
geocode:true,
type:"gcj02",
success:res=> {
uni.hideLoading();
that.lat=res.latitude;
that.long=res.longitude;
// #ifdef APP-PLUS
that.address=res.address.poiName;
// #endif
},
fail:res=> {
uni.hideLoading();
console.log("res",res);
uni.showToast({title: '获取失败,请稍后再试',icon: 'none'});
}
})

操作步骤:

操作:首次拒绝授权(不再提醒),然后在应用设置界面开启授权。

预期结果:

正确获取定位信息

实际结果:

"errMsg": "getLocation:fail [geolocation:7]KEY错误 请到http://lbs.amap.com/api/android-location-sdk/guide/utilities/errorcode/查看错误码说明,错误详细信息:auth fail:INVALID_USER_SCODE#SHA1AndPackage#A1:06:2A:D4:2C:13:F4:1B:29:F0:30:08:CE:F4:7B:FD:6E:0E:9F:C5:qd.com.app#gsid#011018235075161820890332600011850353785#csid#c9169673740d4e1fb90c71284396ca29#0701"

更多关于uni-app 首次拒绝授权(不再提醒)后,在应用设置界面开启授权无法获取定位权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

你好,今天也遇到了同样的问题,请问你是怎么解决的 可以分享下经验吗? 我的key 和sha1都没有问题,调用getLocation 就报错key auth fail:INVALID_USER_SCODE 。

更多关于uni-app 首次拒绝授权(不再提醒)后,在应用设置界面开启授权无法获取定位权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据您提供的信息,问题核心在于高德地图定位SDK的配置错误,而非uni-app本身的权限逻辑。错误码 INVALID_USER_SCODE 明确表示 AppKey配置不匹配,与系统权限设置无关。以下是具体分析和解决方案:

问题原因

  1. SHA1与包名未正确绑定:高德地图开放平台要求AppKey必须与应用的签名SHA1指纹和包名(如 qd.com.app)严格匹配。
  2. 云端打包使用默认证书:若未自定义签名证书,云端打包会使用HBuilderX的默认证书,其SHA1值与您在高德平台配置的可能不一致。
  3. 权限已开启但SDK鉴权失败:即使系统定位权限已开启,高德SDK仍会因密钥错误拒绝服务。

解决步骤

  1. 获取当前APK的准确签名信息
    • 通过命令行工具(如Java的 keytool)检查已安装APK的SHA1:
      keytool -list -v -keystore [您的签名文件] -storepass [密码]
回到顶部