# Configuration des badges

<Aside type="note">
Pour configurer les badges pour les plugins Cordova ou React Native, veuillez vous référer aux guides correspondants :

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

À partir de la version 6.4.0 du SDK iOS de Pushwoosh, le processus de gestion et de configuration des badges via les notifications push a changé.

Si vous utilisiez auparavant le nombre de badges pour indiquer le nombre de notifications push reçues dans votre application, vous devez migrer vers une version plus récente du SDK iOS (6.4.0 ou ultérieure). Les anciennes versions seront prises en charge jusqu'à la fin du deuxième trimestre 2022.

## Comment configurer les badges

Pour configurer les badges, suivez les étapes ci-dessous :

1.  Ajoutez une Notification Service Extension (File -> New -> Target...)

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

2.  Sélectionnez la « Notification Service Extension »

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

3.  Remplacez la classe `NotificationService` générée par une sous-classe de `PushwooshNotificationServiceExtension`. Pushwoosh gère pour vous le comptage des badges, l'événement de livraison, le téléchargement des pièces jointes et le repli en cas de timeout :

<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.  Ajoutez la capacité App Groups aux **deux** cibles — l'application principale et la Notification Service Extension — et utilisez le même App Group pour chacune.

5.  Ajoutez l'ID de l'App Group à l'**info.plist** de l'application principale :

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

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

L'extension hérite de cette valeur de l'application hôte, vous n'avez donc pas besoin de la répéter dans l'info.plist de l'extension — ajoutez-la uniquement pour remplacer la valeur de l'hôte.

Si vous préférez ne pas utiliser le fichier **info.plist**, fournissez l'App Group dans le code en surchargeant `pushwooshAppGroupsName` dans votre classe 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="Exemple" href="https://github.com/Pushwoosh/pushwoosh-quickstart-ios/tree/main/badges/badges" />

## Envoyer une notification push avec des badges

Si vous souhaitez envoyer une notification push avec des badges depuis le Control Panel de Pushwoosh, ajoutez simplement la valeur de badge souhaitée dans le champ de texte **badges** comme indiqué dans l'image ci-dessous :

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

<Aside type="note">
Vous pouvez utiliser les formats de valeur suivants pour envoyer correctement les badges : **+1, -1 ou 5.** Si vous souhaitez incrémenter la valeur du badge, utilisez le signe **« + »**, si vous souhaitez décrémenter les badges, utilisez le signe **« - »**. Vous pouvez également définir le nombre exact en utilisant par exemple **5** sans signe.
</Aside>

## Partagez vos commentaires avec nous

Vos commentaires nous aident à créer une meilleure expérience, nous serions donc ravis de vous entendre si vous rencontrez des problèmes lors du processus d'intégration du SDK. Si vous rencontrez des difficultés, n'hésitez pas à nous faire part de vos réflexions [via ce formulaire](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).