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

iOS 17中applicationIconBadgeNumber已废弃,如何实现应用角标减1?

iOS 17 实现应用角标数字递减1的方案

在iOS 17中,UIApplication.shared.applicationIconBadgeNumber已被废弃,需要改用UNUserNotificationCenter的相关API来管理应用角标。要实现点击按钮时角标数字减1(而非直接重置为0),可以按以下步骤操作:

核心思路

先获取当前的角标数值,计算出递减1后的结果(需保证结果不小于0),再调用新API设置新的角标数。

代码实现

let center = UNUserNotificationCenter.current()
do {
    // 获取当前应用角标数
    let currentCount = try await center.getBadgeCount()
    // 计算新角标数,避免出现负数
    let newCount = max(currentCount - 1, 0)
    // 更新角标
    try await center.setBadgeCount(newCount)
} catch {
    print("更新角标失败:\(error.localizedDescription)")
}

关键点说明

  • getBadgeCount()是iOS 17新增的方法,用于获取当前应用的角标数值,替代了旧的applicationIconBadgeNumber属性
  • 用max(currentCount - 1, 0)确保角标数不会变为负数,避免出现异常情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:52:34