正常打包的app,安装之后第一次打开获取读写存储权限时,通过后台杀掉app,再次打开app不会重新申请读写存储权限,后续app使用会闪退。
- 发布:2021-06-28 10:26
- 更新:2021-06-28 11:40
- 阅读:728
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows10
HBuilderX类型: 正式
HBuilderX版本号: 3.1.18
手机系统: Android
手机系统版本号: Android 10
手机厂商: 华为
手机机型: P30 pro
页面类型: nvue
打包方式: 离线
项目创建方式: HBuilderX
操作步骤:
预期结果:
再次打开app重新申请未正常处理的权限申请
再次打开app重新申请未正常处理的权限申请
实际结果:
app不再申请权限了
app不再申请权限了
bug描述:
正常打包的app,安装之后第一次打开获取读写存储权限时,通过后台杀掉app,再次打开app不会重新申请读写存储权限,后续app使用会闪退。
附件为HbuilderX新建的uni-app默认模板项目,然后云打包之后安装在真机上的效果。
8***@qq.com (作者)
我上传的附件视频中使用的代码是uni-app默认模板,没有做任何修改之后云打包的,他的App id 为UNIB170D7B
2021-06-28 15:18
DCloud_Android_ST
回复 8***@qq.com: 视频也没看到崩溃现象
2021-06-28 15:28
8***@qq.com (作者)
回复 DCloud_Android_ST: 奔溃是在我项目中,项目代码中使用了uni.getStorageSync()。
2021-06-28 16:40
DCloud_Android_ST
回复 8***@qq.com: 查看你提供的appid发现应用是无法正常运行的。 你提供一下示例demo把或者重新云打包。需要能复现问题
2021-06-28 16:59
8***@qq.com (作者)
回复 DCloud_Android_ST: 我这边找到问题发生的原因了,我自己增加的原生插件中file.createNewFile()的时候没有拿到权限。这边问一下,既然默认情况下申请外部存储权限了,为什么在用户没有拒绝或者同意的情况下,也就是再次启用app的时候不再次申请权限呢?
2021-06-29 10:42
DCloud_Android_ST
回复 8***@qq.com: 这是系统层面处理的。代码使用存储功能时需要申请权限。
2021-06-29 10:50
8***@qq.com (作者)
回复 DCloud_Android_ST: 这说不清呀。如果安装后第一次打开的时候申请权限,那是不是代表用到这个权限了。如果权限没拿到,下次打开的时候不应该再次申请吗
2021-06-29 10:54
DCloud_Android_ST
回复 8***@qq.com: 嗯 目前应用第一次启动的权限申请只有一次,uniapp是可以配置是否申请的。后续功能用到存储权限才会再次申请。还有你这逻辑本来就应该自己判断存储权限申请的。没什么好异议的
2021-06-29 10:58
8***@qq.com (作者)
回复 DCloud_Android_ST: 按照当前的android开发规范,敏感权限不是在需要使用到相关功能时才去申请吗?开屏时申请了应该可以断定开屏时尝试在存储中做读写操作了。视频中直接杀掉进程,就意味着权限没有拿到,读写操作也没有成功执行。那重新打开app的时候这个读写操作就不做了吗?
2021-06-29 10:59