1***@qq.com
1***@qq.com
  • 发布:2026-03-03 11:00
  • 更新:2026-03-03 11:01
  • 阅读:17

【报Bug】安卓app调用plus.runtime.setBadgeNumber(0) 在申请发通知权限的时候 不点允许和拒绝,退出后台到删除软件,在次进入会闪退

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.57

手机系统: Android

手机系统版本号: Android 16

手机厂商: 小米

手机机型: 红米k70pro

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
onLaunch(async () => {  
plus.runtime.setBadgeNumber(0)  
})

操作步骤:
安卓app调用plus.runtime.setBadgeNumber(0) 在申请发通知权限的时候 不点允许和拒绝,退出后台到删除软件,在次进入会闪退,在app.vue中的onLaunch里面去调用
onLaunch(async () => {  
plus.runtime.setBadgeNumber(0)  
})

预期结果:
在通知权限出来的时候退出后台删除缓存,再次进入不闪退

实际结果:
在通知权限出来的时候退出后台删除缓存,再次进入闪退

bug描述:

安卓app调用plus.runtime.setBadgeNumber(0) 在申请发通知权限的时候 不点允许和拒绝,退出后台到删除软件,在次进入会闪退,在app.vue中

2026-03-03 11:00 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为 DCloud 官方评审,我对这条 bug 反馈做如下评审:

  1. 反馈完整性

    • 标题、描述、代码示例、复现步骤、预期/实际结果、分类信息(平台、版本、机型等)均已提供,基本完整。
    • 但缺少关键信息:
      – 闪退时的系统日志(logcat 崩溃堆栈)。
      – manifest.json 中是否已声明 android.permission.POST_NOTIFICATIONS 权限。
      – 是否使用自定义调试基座或云打包正式版。
    • 复现步骤描述略显口语化,建议补充“退出后台→长按图标→应用信息→清除数据→卸载→重新安装”的精确操作路径,以便官方 100% 复现。
  2. bug 是否成立
    根据知识库:

    • unipush-v1 > 3.2.2 应用桌面图标的角标 明确说明 plus.runtime.setBadgeNumber 在 Android 上依赖通知权限,且各 ROM 实现差异大。
    • 在 Android 13+(targetSdkVersion≥33)必须动态申请 POST_NOTIFICATIONS 权限;若用户在权限弹窗尚未点击“允许/拒绝”时强行杀掉进程并卸载,部分 ROM(如小米)会在重新安装后残留“权限未决定”状态,导致下次启动时原生层在初始化角标模块时访问通知通道而崩溃。
    • 因此该场景确实可能触发原生闪退,bug 成立。
  3. 概念/使用问题
    不是 uni-app 框架误用,而是 Android 13+ 权限模型与 ROM 实现共同导致的原生崩溃。用户并未在 manifest 中声明权限或做运行时申请,直接调用 setBadgeNumber 会触发系统权限弹窗,此时若异常中断生命周期,极易出现 Native 崩溃。

  4. 建议补充信息

    • 提供 logcat 崩溃日志(关键字 AndroidRuntime)。
    • 在 manifest.json 中添加
      "android" : {  
      "permissions" : [  
       "<uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\"/>"  
      ],  
      "targetSdkVersion" : 33  
      }  
    • 在调用 plus.runtime.setBadgeNumber 前先使用 plus.android.requestPermissions 主动申请通知权限,并等待用户确认后再清零角标。
    • 若仍复现,请上传最简 demo 项目(仅含 App.vue 与 manifest.json)到 ask 社区,方便原生工程师定位。

结论:该反馈有效,但需补充日志与权限配置信息后才能进入 issue 系统。

内容为 AI 生成,仅供参考

要回复问题请先登录注册