8***@qq.com
8***@qq.com
  • 发布:2021-06-28 10:26
  • 更新:2021-06-28 11:40
  • 阅读:590

【报Bug】权限申请非正常操作情况下导致应用闪退,无补救措施。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows10

HBuilderX类型: 正式

HBuilderX版本号: 3.1.18

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: P30 pro

页面类型: nvue

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:

正常打包的app,安装之后第一次打开获取读写存储权限时,通过后台杀掉app,再次打开app不会重新申请读写存储权限,后续app使用会闪退。

预期结果:

再次打开app重新申请未正常处理的权限申请

实际结果:

app不再申请权限了

bug描述:

正常打包的app,安装之后第一次打开获取读写存储权限时,通过后台杀掉app,再次打开app不会重新申请读写存储权限,后续app使用会闪退。
附件为HbuilderX新建的uni-app默认模板项目,然后云打包之后安装在真机上的效果。

2021-06-28 10:26 负责人:DCloud_Android_ST 分享
已邀请:
DCloud_Android_ST

DCloud_Android_ST

应该与你的应用调用的API有关 是云打包吗可以提供一下appid

  • 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

该问题目前已经被锁定, 无法添加新回复