You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:50:45