设置角标
从 Pushwoosh iOS SDK 6.4.0 版本开始,通过推送通知管理和设置角标的流程已发生变化。
如果您之前使用角标数字来表示应用程序中收到的推送通知数量,则必须迁移到新版本的 iOS SDK(6.4.0 或更高版本)。旧版本将支持到 2022 年第二季度末。
什么决定了角标值
Anchor link to角标始终来自推送本身。没有任何 Pushwoosh 功能会自行设置或清除它。在 /createMessage 请求中发送 "ios_badges"(或在 Control Panel 中的 badges 字段)会在 iOS payload 中同时设置 aps.badge(绝对值)和 aps.pw_badge(相对增量)。Android 在 pw_badges 中携带等效值,并需要 com.pushwoosh:pushwoosh-badge 模块才能在支持的启动器上应用它。将推送保存到 Message Inbox 绝不会设置或更改角标。这两者是同一次推送的独立效果。
如何设置角标
Anchor link to要设置角标,请按照以下步骤操作:
- 添加 Notification Service Extension (File -> New -> Target…)

- 选择 “Notification Service Extension”

- 将生成的
NotificationService类替换为PushwooshNotificationServiceExtension的子类。Pushwoosh 会为您处理角标计数、送达事件、附件下载和超时回退:
import PushwooshFramework
class NotificationService: PushwooshNotificationServiceExtension {}#import <PushwooshFramework/PushwooshFramework.h>
@interface NotificationService : PushwooshNotificationServiceExtension@end
@implementation NotificationService@end-
将 App Groups 功能添加到两个 target 中——主应用程序和 Notification Service Extension——并为每个 target 使用相同的 App Group。
-
将 App Group ID 添加到主应用程序的
info.plist中:
<key>PW_APP_GROUPS_NAME</key><string>group.com.example.demoapp_example</string>
扩展程序会从宿主应用程序继承此值,因此您无需在扩展程序的 info.plist 中重复它——仅在需要覆盖宿主值时才在此处添加。
如果您不想使用 info.plist 文件,可以通过在您的 NotificationServiceExtension 类中覆盖 pushwooshAppGroupsName 来在代码中提供 App Group:
override func pushwooshAppGroupsName() -> String? { "group.com.example.demoapp_example"}- (NSString *)pushwooshAppGroupsName { return @"group.com.example.demoapp_example";}发送带角标的推送通知
Anchor link to如果您想从 Pushwoosh Control Panel 发送带角标的推送通知,只需在 badges 文本字段中添加所需的角标值,如下图所示:

与我们分享您的反馈
Anchor link to您的反馈有助于我们创造更好的体验,因此如果您在 SDK 集成过程中遇到任何问题,我们很乐意听取您的意见。如果您遇到任何困难,请随时通过此表单与我们分享您的想法。