d***@91jinrong.com
d***@91jinrong.com
  • 发布:2025-12-19 16:27
  • 更新:2025-12-19 16:28
  • 阅读:27

【报Bug】plus.runtime.setBadgeNumber(0) ios清理后会清理掉通知中心的推送

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOs 15.3 (24D2059)

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iPhone X

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
onLaunch: async function () {  
        console.log('App Launch');  
        // 清除应用角标  
        // #ifdef APP-HARMONY  
        uni.setAppBadgeNumber(0)  
        // #endif  
        // #ifdef APP-PLUS  
        plus.runtime.setBadgeNumber(0);  
        // #endif  
}

操作步骤:

收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0)

预期结果:

收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0),只清理角标,不清理通知栏消息

实际结果:

收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0),通知栏消息也被清理了

bug描述:

plus.runtime.setBadgeNumber(0) ios清理后会清理掉通知中心的推送

2025-12-19 16:27 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该bug反馈内容基本完整但存在关键缺失:标题和描述清晰说明了iOS上调用plus.runtime.setBadgeNumber(0)意外清除通知中心消息的问题,提供了HBuilderX版本(4.87)、iOS 15等环境信息及代码示例。但复现步骤过于简略,未说明推送方式(uni-push/本地消息)及是否通过点击通知打开应用——这是核心疑点,因为iOS系统会在用户点击通知时自动清除该通知,与角标API无关。

经核查知识库:

  • iOS平台角标说明 明确角标(badge)和通知中心是独立功能,setBadgeNumber(0)仅应清除角标数字
  • 通知栏消息操作文档 指出iOS平台"不支持获取系统通知栏消息",且创建本地消息的逻辑与角标设置无直接关联

问题很可能源于iOS系统行为而非API缺陷:当用户通过点击通知栏消息打开应用时,系统会自动清除该通知(这是iOS原生机制),用户误认为是setBadgeNumber(0)导致。建议补充复现细节确认是否属于此场景。若需保留通知仅清除角标,应避免在onLaunch中直接调用该API,改用推送服务配置badge参数(如设置为"0")或检查应用启动来源。

内容为 AI 生成,仅供参考

要回复问题请先登录注册