# Настройка бейджей

<Aside type="note">
Чтобы настроить бейджи для плагинов Cordova или React Native, обратитесь к соответствующим руководствам:

* [Бейджи для Cordova](/ru/developer/pushwoosh-sdk/cross-platform-frameworks/cordova/setting-up-badges-for-cordova)
* [Бейджи для React Native](/ru/developer/pushwoosh-sdk/cross-platform-frameworks/react-native/setting-up-badges-for-react-native)
</Aside>

Начиная с версии 6.4.0 Pushwoosh iOS SDK, процесс управления и установки бейджей через push-уведомления изменился.

Если вы ранее использовали номер бейджа для отображения количества полученных push-уведомлений в вашем приложении, вам необходимо перейти на более новую версию iOS SDK (6.4.0 или более позднюю). Старые версии будут поддерживаться до конца второго квартала 2022 года.

## Как настроить бейджи

Чтобы настроить бейджи, выполните следующие шаги:

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 берет на себя подсчет бейджей, событие доставки, загрузку вложений и обработку тайм-аута:

<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. Добавьте ID App Group в `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**, укажите App Group в коде, переопределив `pushwooshAppGroupsName` в вашем классе NotificationServiceExtension:

<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" />


## Отправка push-уведомления с бейджами

Если вы хотите отправить push-уведомление с бейджами из Pushwoosh Control Panel, просто добавьте желаемое значение бейджа в текстовое поле **badges**, как показано на рисунке ниже:

<img src="/ios-push-notifications-setting-up-badges-5.webp" alt="Значение бейджа"/>

<Aside type="note">
Вы можете использовать следующие форматы значений для корректной отправки бейджей: **+1, -1 или 5.** Если вы хотите увеличить значение бейджа, используйте знак **"+"**, если вы хотите уменьшить значение бейджа, используйте знак **"-"**. Вы также можете установить точное число, используя, например, **5** без знака.
</Aside>

## Поделитесь с нами своим мнением

Ваши отзывы помогают нам улучшать наш продукт, поэтому мы будем рады, если вы поделитесь с нами любыми проблемами, возникшими в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, не стесняйтесь поделиться своими мыслями с нами [через эту форму](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).