onShow: function() {
console.log('App Show');
plus.android.requestPermissions(['android.permission.CAMERA'],function(){},function(err){});
},
onHide: function() {
console.log('App Hide');
}
- 发布:2020-07-22 17:50
- 更新:2023-07-04 22:01
- 阅读:1519
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 19041.388
HBuilderX类型: 正式
HBuilderX版本号: 2.7.14
手机系统: Android
手机系统版本号: Android 9.0
手机厂商: 小米
手机机型: 小米6
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
代码示例中的代码写在APP.VUE中,并且先允许摄像头权限。然后退回桌面,禁用掉APP的摄像头权限,再切回APP就会复现
代码示例中的代码写在APP.VUE中,并且先允许摄像头权限。然后退回桌面,禁用掉APP的摄像头权限,再切回APP就会复现
预期结果:
通过失败回调来编写代码警告用户不要自行禁止摄像头权限
通过失败回调来编写代码警告用户不要自行禁止摄像头权限
实际结果:
一直触发onShow和onHide。导致写在onShow中的代码一直重复执行
一直触发onShow和onHide。导致写在onShow中的代码一直重复执行
bug描述:
需求需要检测用户是否切回桌面禁用了摄像头。
在APP.VUE的onShow中使用plus.android.requestPermissions
,结果导致切回应用后无限触发onShow和onHide。
4 个回复
7***@qq.com (作者)
顶顶顶顶
jxtian
尽量避免在 onshow 里使用需要权限的API(比如setScreenBrightness()等需要手机权限), 会反复触发 onshow 造成死循环。
7***@qq.com (作者)
那遇到退到后台手动禁止权限 然后再点开APP 岂不是不能提示用户开启权限
2020-07-24 11:02
8***@qq.com
我也是发现这个问题,跳转到系统权限界面后回来无法检测是否开启,因为回来就是onshow,如果在onshow里就会无限死循环,不知道如何解决
2020-11-07 20:06
1***@qq.com
回复 7***@qq.com: 请问一下 你解决了么
2021-01-12 14:07
Emmpty
顶顶顶~~~老问题了
AKA小迪 - 信息
没人解决吗
1***@qq.com
防抖的做法
定义一个全局的变量 isApplyPermission: false
页面onshow中判断 未申请的情况下才能调用方法
方法中设置为true,函数走完再置为false
2023-09-07 11:54
坤坤崩
回复 1***@qq.com: 没有用的,他还是会多触发一次
2024-10-31 18:07