# 设置 Badges

<Aside type="note">
要为 Cordova 或 React Native 插件设置 Badges，请参阅相应的指南：

*   [Cordova Badges](/zh/developer/pushwoosh-sdk/cross-platform-frameworks/cordova/setting-up-badges-for-cordova)
*   [React Native Badges](/zh/developer/pushwoosh-sdk/cross-platform-frameworks/react-native/setting-up-badges-for-react-native)
</Aside>

从 Pushwoosh iOS SDK 6.4.0 版本开始，通过推送通知管理和设置 Badges 的过程已发生变化。

如果您之前使用 Badges 数量来表示应用程序中收到的推送通知数量，则必须迁移到新版本的 iOS SDK（6.4.0 或更高版本）。旧版本将支持到 2022 年第二季度末。

## 如何设置 Badges

要设置 Badges，请按照以下步骤操作：

1.  添加 Notification Service Extension (File -> New -> Target...)

<img src="/shared-7.webp" alt=""/>

2.  选择 “Notification Service Extension”

<img src="/ios-push-notifications-setting-up-badges-1.webp" alt="添加 Notification Service Extension"/>

3.  将生成的 `NotificationService` 类替换为 `PushwooshNotificationServiceExtension` 的子类。Pushwoosh 会为您处理 Badge 计数、送达事件、附件下载以及超时回退：

<Tabs>
<TabItem label="Swift">
```swift
import PushwooshFramework

class NotificationService: PushwooshNotificationServiceExtension {}
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
#import <PushwooshFramework/PushwooshFramework.h>

@interface NotificationService : PushwooshNotificationServiceExtension
@end

@implementation NotificationService
@end
```
</TabItem>
</Tabs>

4.  将 App Groups 功能添加到**两个**目标 — 主应用和 Notification Service Extension — 并为每个目标使用相同的 App Group。

5.  将 App Group ID 添加到**主应用**的 `info.plist` 中：

```
<key>PW_APP_GROUPS_NAME</key>
<string>group.com.example.demoapp_example</string>
```

<img src="/shared-12.webp" alt="Info.plist"/>

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

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

<Tabs>
<TabItem label="Swift">
```swift
override func pushwooshAppGroupsName() -> String? {
    "group.com.example.demoapp_example"
}
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
- (NSString *)pushwooshAppGroupsName {
    return @"group.com.example.demoapp_example";
}
```
</TabItem>
</Tabs>

<LinkCard title="示例" href="https://github.com/Pushwoosh/pushwoosh-quickstart-ios/tree/main/badges/badges" />


## 发送带 Badges 的推送通知

如果您想从 Pushwoosh Control Panel 发送带 Badges 的推送通知，只需将所需的 Badge 值添加到 **badges** 文本字段中，如下图所示：

<img src="/ios-push-notifications-setting-up-badges-5.webp" alt="Badges 值"/>

<Aside type="note">
您可以使用以下值格式来正确发送 Badges：**+1、-1 或 5。** 如果要增加 Badge 值，请使用 **“+”** 符号**，**如果要减少 Badges，请使用 **“-”** 符号**。** 您也可以通过使用例如不带符号的 **5** 来设置确切的数字。
</Aside>

## 与我们分享您的反馈

您的反馈有助于我们创造更好的体验，因此如果您在 SDK 集成过程中遇到任何问题，我们很乐意听取您的意见。如果您遇到任何困难，请随时[通过此表单](https://docs.google.com/forms/d/e/1FAIpQLSd_0b8jwn-V_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform)与我们分享您的想法。