如何移除React Native Android持久化通知的图标角标
移除react-native-push-notification持久化通知的图标角标
Android 端解决办法
Android这边光靠通知渠道的setShowBadge可能不够,得从这几个地方入手:
- 创建通知时直接关角标:在持久化通知的配置里,直接加
badge: 0和showBadge: false,强制禁用角标显示:PushNotification.localNotification({ // 你的其他通知配置 channelId: "你的持久化通知渠道ID", badge: 0, // 把角标数量设为0 showBadge: false, // 明确关闭角标 }); - 重置通知渠道:如果之前已经创建过渠道,修改
setShowBadge(false)可能不生效——因为Android渠道创建后核心配置改不了。这时候要么卸载重装App,要么删除旧渠道再重建:PushNotification.createChannel( { channelId: "你的持久化通知渠道ID", channelName: "持久化通知", channelDescription: "前台服务用通知", showBadge: false, // 这里必须是false }, (created) => console.log(`渠道创建状态:${created}`) );
iOS 端解决办法
iOS的角标是系统管的,得手动清零或者在配置里直接禁用:
- 通知配置里直接清零:发持久化通知时,加上
applicationIconBadgeNumber: 0:PushNotification.localNotification({ // 你的其他通知配置 applicationIconBadgeNumber: 0, // 强制把角标数量设为0 }); - 监听通知事件实时清零:如果是后台触发的通知,在通知回调里手动清零:
PushNotification.configure({ onNotification: function(notification) { // 收到或点击通知时,立刻清零角标 PushNotification.setApplicationIconBadgeNumber(0); }, }); - 系统权限层面关闭:也可以直接在iOS设置里关——打开「设置」→「通知」→找到你的App→关掉「标记」选项。
额外排查点
- 如果之前用过第三方角标库(比如react-native-badge),先把相关代码全删掉,避免冲突。
- 要是Android的前台服务通知还是有角标,可能得改原生代码:在构建通知的
Notification.Builder里加上.setShowBadge(false),确保原生层彻底禁用角标。
内容的提问来源于stack exchange,提问作者Muhammad Adil
相关产品推荐
相关产品推荐

