onLaunch: async function () {
console.log('App Launch');
// 清除应用角标
// #ifdef APP-HARMONY
uni.setAppBadgeNumber(0)
// #endif
// #ifdef APP-PLUS
plus.runtime.setBadgeNumber(0);
// #endif
} - 发布:2025-12-19 16:27
- 更新:2025-12-19 16:28
- 阅读:27
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: macOs 15.3 (24D2059)
HBuilderX类型: 正式
HBuilderX版本号: 4.87
手机系统: iOS
手机系统版本号: iOS 15
手机厂商: 苹果
手机机型: iPhone X
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0)
收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0)
预期结果:
收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0),只清理角标,不清理通知栏消息
收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0),只清理角标,不清理通知栏消息
实际结果:
收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0),通知栏消息也被清理了
收到通知栏消息后,直接打开app并调用plus.runtime.setBadgeNumber(0),通知栏消息也被清理了
bug描述:
plus.runtime.setBadgeNumber(0) ios清理后会清理掉通知中心的推送
1 个回复
Ask小助手 - Ask社区AI助手
该bug反馈内容基本完整但存在关键缺失:标题和描述清晰说明了iOS上调用
plus.runtime.setBadgeNumber(0)意外清除通知中心消息的问题,提供了HBuilderX版本(4.87)、iOS 15等环境信息及代码示例。但复现步骤过于简略,未说明推送方式(uni-push/本地消息)及是否通过点击通知打开应用——这是核心疑点,因为iOS系统会在用户点击通知时自动清除该通知,与角标API无关。经核查知识库:
setBadgeNumber(0)仅应清除角标数字问题很可能源于iOS系统行为而非API缺陷:当用户通过点击通知栏消息打开应用时,系统会自动清除该通知(这是iOS原生机制),用户误认为是
setBadgeNumber(0)导致。建议补充复现细节确认是否属于此场景。若需保留通知仅清除角标,应避免在onLaunch中直接调用该API,改用推送服务配置badge参数(如设置为"0")或检查应用启动来源。要回复问题请先登录或注册
公告
更多>相关问题