跳到内容

设置角标

从 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

要设置角标,请按照以下步骤操作:

  1. 添加 Notification Service Extension (File -> New -> Target…)
  1. 选择 “Notification Service Extension”
添加 Notification Service Extension
  1. 将生成的 NotificationService 类替换为 PushwooshNotificationServiceExtension 的子类。Pushwoosh 会为您处理角标计数、送达事件、附件下载和超时回退:
import PushwooshFramework
class NotificationService: PushwooshNotificationServiceExtension {}
  1. 将 App Groups 功能添加到两个 target 中——主应用程序和 Notification Service Extension——并为每个 target 使用相同的 App Group。

  2. 将 App Group ID 添加到主应用程序的 info.plist 中:

<key>PW_APP_GROUPS_NAME</key>
<string>group.com.example.demoapp_example</string>
Info.plist

扩展程序会从宿主应用程序继承此值,因此您无需在扩展程序的 info.plist 中重复它——仅在需要覆盖宿主值时才在此处添加。

如果您不想使用 info.plist 文件,可以通过在您的 NotificationServiceExtension 类中覆盖 pushwooshAppGroupsName 来在代码中提供 App Group:

override func pushwooshAppGroupsName() -> String? {
"group.com.example.demoapp_example"
}

发送带角标的推送通知

Anchor link to

如果您想从 Pushwoosh Control Panel 发送带角标的推送通知,只需在 badges 文本字段中添加所需的角标值,如下图所示:

角标值

与我们分享您的反馈

Anchor link to

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