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

iOS推送通知角标不显示问题求助

解决iOS通知角标不显示的问题

嘿,我看到你已经在权限请求里包含了.badge选项,但角标还是没显示,咱们一步步排查可能的原因:

  • 推送Payload必须明确携带badge字段
    远程推送的aps payload里必须包含badge字段,系统才会更新角标。比如正确的payload格式应该是这样:

    {
      "aps": {
        "alert": "新消息提醒",
        "sound": "default",
        "badge": 1
      }
    }
    

    注意:如果把badge设为0,是用来清除角标的,不是显示角标;另外静默推送(带content-available:1)也要确保badge字段存在才能生效。

  • 检查通知代理的处理逻辑
    如果你实现了UNUserNotificationCenterDelegate的方法,要确保没有遗漏badge的展示逻辑:

    • 当App在前台收到通知时,willPresent方法的completionHandler必须包含.badge选项,否则角标不会更新:
      func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
          // 一定要包含.badge,否则前台通知不会更新角标
          completionHandler([.alert, .sound, .badge])
      }
      
    • 如果App在后台收到推送,系统默认会自动更新角标,但如果你手动处理了didReceiveRemoteNotification,记得手动设置角标数值:
      func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
          if let badgeCount = userInfo["aps"]?["badge"] as? Int {
              UIApplication.shared.applicationIconBadgeNumber = badgeCount
          }
      }
      
  • 确认系统设置里的角标权限
    有时候用户可能不小心在系统设置里关闭了App的角标显示。你可以引导用户去「设置」→「通知」→ 你的App,检查「标记」选项是否开启。也可以用代码主动检查当前权限状态:

    UNUserNotificationCenter.current().getNotificationSettings { settings in
        switch settings.badgeSetting {
        case .authorized:
            print("角标权限已开启")
        case .denied:
            print("角标权限被拒绝")
        case .notDetermined:
            print("角标权限未确认")
        @unknown default:
            break
        }
    }
    
  • 手动测试角标功能
    先排除推送的问题,直接在代码里手动设置角标,看看是否能正常显示:

    DispatchQueue.main.async {
        UIApplication.shared.applicationIconBadgeNumber = 3
    }
    

    如果手动设置能显示,那问题大概率出在推送payload上;如果手动设置也不显示,那就要检查系统设置或者App的权限状态了。

  • 注意测试环境一致性
    如果你用第三方推送平台或者Xcode推送测试工具,要确保推送的环境(开发/生产)和你的App运行环境一致,否则推送内容可能无法正常触发角标更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:56:33