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

在React Native应用中如何设置iOS主屏幕的应用角标数字?

你提到的PushNotificationIOS.setApplicationIconBadgeNumber(number)方法完全可以实现iOS主屏幕应用图标角标的设置需求,具体实现和代码放置位置如下:

1 前置配置
  • 首先确认你已经正确安装了对应的推送iOS依赖库,且完成了原生端的配置
  • 必须先向用户申请角标权限,iOS只有用户同意通知相关权限后,角标设置才会生效,权限申请代码建议放在App根组件的初始化生命周期中(比如函数组件的useEffect(() => {}, []) 或者类组件的componentDidMount)
    示例代码:
import PushNotificationIOS from '@react-native-community/push-notification-ios';

// App初始化时执行
PushNotificationIOS.requestPermissions({
  badge: true, // 仅需要角标权限可只开启该选项
  alert: false,
  sound: false
}).then(res => {
  console.log('角标权限申请结果:', res.badge)
})
2 代码放置位置

根据你的使用场景选择放置位置即可:

  • 和Tab栏角标同步:直接把角标设置逻辑和你现在更新tabBarBadge的逻辑放在一起,每次更新Tab角标的时候同步调用方法更新主屏幕角标即可,保证两边数值一致
    示例代码:
// 你原有更新Tab角标的方法
const updateMessageBadge = (newCount) => {
  // 原有更新Tab栏角标的逻辑
  setTabBarBadge(newCount)
  // 新增:同步设置主屏幕角标
  PushNotificationIOS.setApplicationIconBadgeNumber(newCount)
}
  • App启动恢复角标:如果需要每次App启动时恢复上次的角标数值,可以把设置逻辑放在权限申请成功的回调里,读取本地存储的角标数值后调用方法设置
  • 后台推送更新角标:如果是收到推送时更新角标,直接把方法放在推送事件的回调逻辑中即可
  • 调用PushNotificationIOS.setApplicationIconBadgeNumber(0)即可清除角标
注意事项
  • 如果用户拒绝了角标权限,调用该方法不会生效,你可以通过PushNotificationIOS.checkPermissions()方法先判断权限状态,再做对应处理
  • 该方法仅对iOS生效,Android系统的桌面角标需要单独适配不同厂商的ROM

内容的提问来源于stack exchange,提问作者AJDee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 04:18:04