App 图标角标

把未读数显示在 App 图标上

角标是您能对海外用户说的最简短的一句话,用户读它不费任何成本。在与其他推送相同的活动和 Customer Journey 中设置、递增或清零角标。

三个并排的 iPhone 主屏幕,部分 App 图标角上带有红色未读数角标,其余图标没有角标

超过 80,000 家企业借助 Pushwoosh 扩大用户互动

角标全解析

角标只是一个整数,这正是它的魅力所在。它不占横幅、不响提示音,不消耗您好不容易争取到的推送权限,对三小时前划掉您推送的用户依然有效。您可以在编辑器或 API 中对这个整数做三件事,另外还有一个关于显示位置的注意事项。

精确数值

ios_badges: 5 会把图标上的角标设为 5,无论之前是多少。您发送的值就是用户看到的值,适合服务端已经掌握真实总数的场景。

+1 和 -1

相对变化可以增减角标数,无需您自行追踪。SDK 通过内部 /setBadge 接口回传设备上的值,让 Pushwoosh 的计数器与实际图标保持一致。

0 清除角标

发送 0,角标即从图标上消失。打开时清零,决定了用户是信任这个数字,还是学会忽略红点。

iOS 统一,Android 取决于启动器

在 iOS 上,角标是标准的 aps.badge 值,所有设备显示方式一致。Android 没有原生角标 API,显示效果取决于启动器,Pushwoosh 会如实说明,而不是暗示无法实现的覆盖范围。

您可以控制什么

发送内容角标数如何变化设置位置
整数,5将角标精确设为该值ios_badges / android_badges,或 Badges 字段
+1、+3在当前计数上递增同一字段,Android 推送预设中也支持 +n
-1在当前计数上递减同一字段,用于服务端的已读或关闭操作
0从图标上移除角标同一字段,或 App 启动时清除
SDK 调用根据应用内事件设置或清除角标iOS 上为 setApplicationIconBadgeNumber,Android 上为 PushwooshBadge
不做任何操作SDK 应用随推送到达的角标值iOS 基础场景无需 App 代码
扩展在通知显示前修改计数PWNotificationExtensionManager 搭配 App Groups
发送内容
1 / 7
整数,5
角标数如何变化
将角标精确设为该值
设置位置
ios_badges / android_badges,或 Badges 字段
发送内容
2 / 7
+1、+3
角标数如何变化
在当前计数上递增
设置位置
同一字段,Android 推送预设中也支持 +n
发送内容
3 / 7
-1
角标数如何变化
在当前计数上递减
设置位置
同一字段,用于服务端的已读或关闭操作
发送内容
4 / 7
0
角标数如何变化
从图标上移除角标
设置位置
同一字段,或 App 启动时清除
发送内容
5 / 7
SDK 调用
角标数如何变化
根据应用内事件设置或清除角标
设置位置
iOS 上为 setApplicationIconBadgeNumber,Android 上为 PushwooshBadge
发送内容
6 / 7
不做任何操作
角标数如何变化
SDK 应用随推送到达的角标值
设置位置
iOS 基础场景无需 App 代码
发送内容
7 / 7
扩展
角标数如何变化
在通知显示前修改计数
设置位置
PWNotificationExtensionManager 搭配 App Groups

在哪里设置

编辑器中的 Badges 字段

Send-Push 表单和推送预设支持填写数字、+n、-n 或 0。修改活动对角标的操作无需发版,也无需开发人员。

API 中的一个键

/createMessage 中的 ios_badges 和 android_badges。在 iOS 上,该值会写入 Apple 原有 payload 的 aps.badge 字段。

由 SDK 应用并同步

SDK 无需 App 代码即可应用到达的角标值,并通过 /setBadge 让服务端的角标值保持最新,确保 +1 从正确的数字开始计算。

在用户旅程中发挥作用

一个计数,多个来源

角标是您已在发送的消息的一个属性,无需单独集成。决定谁收到推送的同一个 Customer Journey 和同一份用户档案,也决定角标数变成多少。

因此唯一需要考虑的是:这个数字由什么驱动。Message Inbox 的未读总数可以直接作为计数,静默推送可以在不提醒用户的情况下改变它,可见的 移动推送 也可以顺带更新它。在旅程目标处加一步,即可将它清零为 0。

出海手游:玩家离线时累积三份奖励

每发放一份奖励都会触发一个事件,每个事件发送一条增加 +1 的静默推送。不响铃、不点亮锁屏,到了晚上,图标上悄悄显示 3。

当限时活动开启时,同一个旅程会发送一条值得打扰玩家的可见推送。无论是哪一种方式把玩家带回游戏,SDK 都会在启动时将角标清零为 0,让第二天的计数从真实的数字开始。

适用场景

角标的价值取决于计数密度:您的 App 是否真的有一个不断累积、值得显示在图标上的未读或待处理数量。以计数为核心的 App 可以免费获得真正的回访提示,而没有东西可计数的 App 只会得到一个让用户学会忽略红点的红点。

场景数字代表什么为什么适合角标
出海手游:奖励、体力恢复、活动入场3 份待领取计数本身就是留存循环的一部分,领取正是玩家的核心动机
跨境电商与交易平台:购物车商品、未读优惠购物车中有 2 件商品安静的提醒,购物者接收时无需分心
创作者与订阅类 App:新内容、私信、评论12 条未读社交信息流内部已经在维护这个数字,图标只需显示出来
媒体与新闻:未读文章、新剧集5 篇未读文章最典型的用例,能稳定地把读者带回 App
金融科技:对账单、提醒、待处理操作1 项待处理确有未读文档计数,图标承载数字,不在锁屏上暴露细节
交易与竞猜:已触发提醒、已结算注单已触发 4 条提醒提醒累积成对用户真正有意义的数字
医疗与远程问诊:检查结果、安全消息您的检查结果已出计数显示在主屏幕上,内容仍在身份验证之后
在线教育:未读课程、连续学习、作业2 节课待学习连续打卡或课程队列正是人们想要清零的数字
场景
1 / 8
出海手游:奖励、体力恢复、活动入场
数字代表什么
3 份待领取
为什么适合角标
计数本身就是留存循环的一部分,领取正是玩家的核心动机
场景
2 / 8
跨境电商与交易平台:购物车商品、未读优惠
数字代表什么
购物车中有 2 件商品
为什么适合角标
安静的提醒,购物者接收时无需分心
场景
3 / 8
创作者与订阅类 App:新内容、私信、评论
数字代表什么
12 条未读
为什么适合角标
社交信息流内部已经在维护这个数字,图标只需显示出来
场景
4 / 8
媒体与新闻:未读文章、新剧集
数字代表什么
5 篇未读文章
为什么适合角标
最典型的用例,能稳定地把读者带回 App
场景
5 / 8
金融科技:对账单、提醒、待处理操作
数字代表什么
1 项待处理
为什么适合角标
确有未读文档计数,图标承载数字,不在锁屏上暴露细节
场景
6 / 8
交易与竞猜:已触发提醒、已结算注单
数字代表什么
已触发 4 条提醒
为什么适合角标
提醒累积成对用户真正有意义的数字
场景
7 / 8
医疗与远程问诊:检查结果、安全消息
数字代表什么
您的检查结果已出
为什么适合角标
计数显示在主屏幕上,内容仍在身份验证之后
场景
8 / 8
在线教育:未读课程、连续学习、作业
数字代表什么
2 节课待学习
为什么适合角标
连续打卡或课程队列正是人们想要清零的数字

什么时候不该用角标

角标只报告数量。等待中的内容是什么、有多紧急,都属于其他触点。

  • 用户需要知道收到了什么:请使用 移动推送、富媒体推送或 应用内消息。
  • 刻不容缓的时刻。角标天生是被动的,紧急情况应使用 中断级别。
  • 持续变化而非计数的状态:配送中的订单、实时比分。这应使用 Live Activity。
  • App 没有天然累积的计数。保险、酒店、公共事业和单次使用的工具只有一张账单或一份预订,角标在这里只是噪音。
  • 您的受众以 Android 为主,而角标又是核心机制。在 Android 上应把它视为尽力而为,并设计无需角标也能运转的流程。
计数吸引用户查看,推送本身仍要值得打开

50 个值得借鉴的推送通知案例,附每个案例的文案与创意思路。

获取案例

平台与技术支持

iOS 只有一种角标,每部 iPhone 的显示方式都相同。Android 没有通用的角标 API,主屏幕上显示什么取决于用户当前使用的启动器。最后一列列出了实际绘制数字的组件,因为对这个功能而言,真实答案就在那里。

能力iOSAndroidWeb实现方式
精确角标值支持,标准 aps.badge尽力而为,取决于启动器–推送 payload,由 SDK 应用
相对 +1 和 -1支持,Pushwoosh SDK 6.4.0+推送预设中的 +n,取决于启动器–推送,由 /setBadge 保持计数同步
清零为 0支持取决于启动器–推送 payload,或 App 启动时
无代码 Badges 字段支持,编辑器和推送预设中支持,推送预设中的角标值–Pushwoosh Control Panel
通过 App 代码设置或清除setApplicationIconBadgeNumberPushwooshBadge–您的 App,通过 Pushwoosh SDK
显示前修改计数支持,在 Notification Service Extension 中––PWNotificationExtensionManager 搭配 App Groups
无提醒更新角标支持尽力而为–静默推送,相同受众和旅程
启动器和设备覆盖所有 iPhone,显示一致Sony、Samsung、LG、HTC、ASUS、ADW、APEX、NOVA、Huawei、ZUK、OPPO–com.pushwoosh:pushwoosh-badge 搭配启动器权限
Pixel 及不支持的启动器不适用––Android 没有原生角标 API,因此不会显示
从系统读取当前计数–––iOS 不提供读取 API,计数保存在您的 App 或服务端
App 图标角标本身支持取决于启动器–浏览器没有供 Web 推送使用的对应触点
能力
1 / 11
精确角标值
iOS
支持,标准 aps.badge
Android
尽力而为,取决于启动器
Web
–
实现方式
推送 payload,由 SDK 应用
能力
2 / 11
相对 +1 和 -1
iOS
支持,Pushwoosh SDK 6.4.0+
Android
推送预设中的 +n,取决于启动器
Web
–
实现方式
推送,由 /setBadge 保持计数同步
能力
3 / 11
清零为 0
iOS
支持
Android
取决于启动器
Web
–
实现方式
推送 payload,或 App 启动时
能力
4 / 11
无代码 Badges 字段
iOS
支持,编辑器和推送预设中
Android
支持,推送预设中的角标值
Web
–
实现方式
Pushwoosh Control Panel
能力
5 / 11
通过 App 代码设置或清除
iOS
setApplicationIconBadgeNumber
Android
PushwooshBadge
Web
–
实现方式
您的 App,通过 Pushwoosh SDK
能力
6 / 11
显示前修改计数
iOS
支持,在 Notification Service Extension 中
Android
–
Web
–
实现方式
PWNotificationExtensionManager 搭配 App Groups
能力
7 / 11
无提醒更新角标
iOS
支持
Android
尽力而为
Web
–
实现方式
静默推送,相同受众和旅程
能力
8 / 11
启动器和设备覆盖
iOS
所有 iPhone,显示一致
Android
Sony、Samsung、LG、HTC、ASUS、ADW、APEX、NOVA、Huawei、ZUK、OPPO
Web
–
实现方式
com.pushwoosh:pushwoosh-badge 搭配启动器权限
能力
9 / 11
Pixel 及不支持的启动器
iOS
不适用
Android
–
Web
–
实现方式
Android 没有原生角标 API,因此不会显示
能力
10 / 11
从系统读取当前计数
iOS
–
Android
–
Web
–
实现方式
iOS 不提供读取 API,计数保存在您的 App 或服务端
能力
11 / 11
App 图标角标本身
iOS
支持
Android
取决于启动器
Web
–
实现方式
浏览器没有供 Web 推送使用的对应触点

安全与托管

Pushwoosh 运行在位于美国和德国的自有硬件上,遵循 GDPR。

ISO 27001:2022 CertifiedISO 27001 CertifiedGDPR CompliantData Privacy FrameworkHIPAA CompliantSOC 2 Type 2 CertifiedOWASP Compliant

工作原理

设置角标无需代码,所有套餐均免费可用。开发工作只集中在两个小地方,而且都不涉及 iOS 基础场景。

  1. 设置计数 (无代码)

    在 Send-Push 表单或推送预设的 Badges 字段中填写数字、+n、-n 或 0,或通过 Messages API 发送 ios_badges 和 android_badges。iOS 基础场景无需 App 做任何事:SDK 会在推送到达时应用该值。

  2. 接入需要开发的两处 (开发人员)

    Android 需要 com.pushwoosh:pushwoosh-badge 库,并在 manifest 中添加各启动器所需的权限。在打开推送和启动 App 时清零只需一次 SDK 调用;只有在通知显示前必须修改计数时,才需要搭配 App Groups 的 Notification Service Extension。

  3. 编排 (无代码)

    用 Message Inbox 的未读总数驱动计数,用不带提醒的静默推送改变它,并在同一个 Customer Journey 的目标处清零——推送、应用内消息和邮件都在这个旅程中运行。

需要了解的限制

一个计数机制,一个平台统一,另一个平台碎片化。以下是它的边界。

  • iOS 统一且一流。Android 只能尽力而为,因为系统没有通用的角标 API,显示什么由启动器决定。
  • Android 覆盖确实参差不齐。Samsung 和 Xiaomi 使用不同的机制,Google 自家的 Pixel 启动器基本不显示图标角标,部分第三方启动器也会忽略它。
  • Android 角标更新受电池策略限制。Doze 和 App Standby 会限制其依赖的后台任务,被强制停止的 App 在重新打开前无法更新计数。
  • Huawei 设备将角标控制权交给 Huawei 自己的启动器,因此行为因设备以及 EMUI 或 HarmonyOS 版本而异。
  • 相对的 +1 和 -1 依赖 SDK 掌握当前值。如果 App 自行覆盖角标却不同步,服务端的递增可能会从错误的数字开始计算,而 iOS 不提供读取系统角标的 API。
  • iOS SDK 6.4.0 改变了通过推送设置角标的机制。曾用角标统计收到推送数量的 App 必须迁移,请以当前行为而非旧行为进行规划。
  • 角标只承载数量。等待的内容是什么、有多紧急,需要由推送、应用内消息或中断级别来传达。
  • 它在服务端几乎不留痕迹。只有明确设置了角标的活动才会出现在存储的 payload 中,由 SDK 管理的应用和清除不会出现,因此请通过对比带角标与不带角标的用户群来衡量效果,而不是在报表中寻找它。