uni-app uni.getLocation 安卓端权限永久拒绝后重新开启权限无法定位 需手动重启APP才能定位

uni-app uni.getLocation 安卓端权限永久拒绝后重新开启权限无法定位 需手动重启APP才能定位

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

操作步骤:

uni.getLocation 安卓端 权限永久拒绝之后重新开启权限无法定位 需要手动重启APP才能定位

预期结果:

uni.getLocation 安卓端 权限永久拒绝之后重新开启权限需要获取到定位 无需重启APP

实际结果:

uni.getLocation 安卓端 权限永久拒绝之后重新开启权限无法定位 需要手动重启APP才能定位

bug描述:

uni.getLocation 安卓端 权限永久拒绝之后重新开启权限无法定位 需要手动重启APP才能定位


更多关于uni-app uni.getLocation 安卓端权限永久拒绝后重新开启权限无法定位 需手动重启APP才能定位的实战教程也可以访问 https://www.itying.com/category-93-b0.html

18 回复

权限被永久拒绝后,再重新手动开启该权限的话,一般都是需要再重启App应用才有效的吧。

更多关于uni-app uni.getLocation 安卓端权限永久拒绝后重新开启权限无法定位 需手动重启APP才能定位的实战教程也可以访问 https://www.itying.com/category-93-b0.html


目前是这样。触发永久拒绝需要两次确认的。重新再开启权限的概率不会太高

老哥问题解决了?

在有定位权限的时候 定位接口还是无法定位 调用方法重启一下APP就好了

这个暂时无解,只能等官方修复,目前的解决方式是判断是android的话,点击去系统设置页面就关闭app,这样用户设置翻返回,就只能重新打开app,相当于变相的解决了这个,就是用户体验可能不太好,看取舍吧
//打开系统位置设置 var main = plus.android.runtimeMainActivity(); var intent = plus.android.newObject(‘android.content.Intent’, ‘android.settings.APPLICATION_DETAILS_SETTINGS’); var uri = plus.android.invoke(‘android.net.Uri’, ‘fromParts’, ‘package’, main.getPackageName(), null); plus.android.invoke(intent, ‘setData’, uri); //关闭app plus.runtime.quit(); main.startActivity(intent);

老哥,这样设置还是获取不到定位,必须杀进程才可以

请问这个解决了嘛?

使用3.4.7版本试下

3.6.5的版本不行

请问为什么小米app uni.getLocation会得执行两次才能永久不再执行呢?第一次拒绝按钮,第二次拒绝且不在询问按钮。可以一次性永久拒绝吗?只有小米手机这样

兄弟,有解决方法了吗?我就是因为这个原因,小米审核的时候,给我拒绝了

回复 1***@qq.com: 你们解决了嘛

卸载了,都还不行

卸载重装都还不行

这可咋办

回复 文网APP: 把应用缓存清理了就好了。重新卸载安装的怎么会有之前的记忆呢;

重新进入app应该可以吧

这是一个常见的Android权限管理问题。当用户永久拒绝定位权限后,即使后续重新开启权限,应用进程中的权限状态可能仍未更新,导致uni.getLocation无法正常获取定位。

建议在权限状态变化时,通过以下方式处理:

  1. 监听权限变化:在Android端,可以使用uni.onNeedPermissionChange监听权限状态变更
  2. 主动重启定位服务:检测到权限重新开启后,可以尝试重新初始化定位模块
  3. 应用状态管理:在onShow生命周期中检查权限状态,必要时重新请求定位

代码示例:

// 监听权限变化
uni.onNeedPermissionChange((res) => {
  if (res.type === 'location' && res.status === 'authorized') {
    // 权限重新授权,重新获取定位
    this.getLocation();
  }
});

// 在onShow中检查
onShow() {
  this.checkLocationPermission();
}
回到顶部