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
权限被永久拒绝后,再重新手动开启该权限的话,一般都是需要再重启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的版本不行
兄弟,有解决方法了吗?我就是因为这个原因,小米审核的时候,给我拒绝了
回复 1***@qq.com: 你们解决了嘛
卸载了,都还不行
卸载重装都还不行
回复 文网APP: 把应用缓存清理了就好了。重新卸载安装的怎么会有之前的记忆呢;
重新进入app应该可以吧
这是一个常见的Android权限管理问题。当用户永久拒绝定位权限后,即使后续重新开启权限,应用进程中的权限状态可能仍未更新,导致uni.getLocation无法正常获取定位。
建议在权限状态变化时,通过以下方式处理:
- 监听权限变化:在Android端,可以使用uni.onNeedPermissionChange监听权限状态变更
- 主动重启定位服务:检测到权限重新开启后,可以尝试重新初始化定位模块
- 应用状态管理:在onShow生命周期中检查权限状态,必要时重新请求定位
代码示例:
// 监听权限变化
uni.onNeedPermissionChange((res) => {
if (res.type === 'location' && res.status === 'authorized') {
// 权限重新授权,重新获取定位
this.getLocation();
}
});
// 在onShow中检查
onShow() {
this.checkLocationPermission();
}


