Passer au contenu principal
Les badges sont les petits points numérotés qui apparaissent sur l’icône de votre application mobile. Ils aident à capter l’attention de l’utilisateur et peuvent influencer le comportement d’engagement. Sur iOS en particulier, les badges nécessitent une configuration supplémentaire et offrent un contrôle flexible, comme décrit ci-dessous.
Pour les notifications push Web Android, le badge fait référence à la petite icône affichée sur les notifications, et non à l’icône de l’application, et peut être personnalisé. Voir Badges push Web.

Badges Android

Le comportement des badges d’icône d’application Android peut être géré via les catégories de notification Android. Vous pouvez contrôler si une catégorie (canal) affiche un badge et définir le comportement du badge par catégorie.

Badges Huawei

Sur les appareils Huawei, un badge peut s’afficher sous forme de nombre ou de point sur l’icône de l’application, selon les paramètres de l’appareil de l’utilisateur. Les badges aident à indiquer les messages non lus ou les actions en attente, encourageant les utilisateurs à ouvrir l’application. OneSignal vous permet de contrôler directement les compteurs de badges Huawei via le tableau de bord ou l’API.

Comment fonctionnent les badges Huawei

Le badge s’affiche sur l’icône de l’application sous forme de comptage numérique ou de point, selon le paramètre de l’appareil de l’utilisateur (Paramètres > Notifications > Badges d’icônes d’application). Votre appel API contrôle le comptage sous-jacent ; l’appareil décide du style visuel.

Paramètres

ParamètreTypePlageDescription
huawei_badge_classstring(Requis) Nom de classe entièrement qualifié de l’Activity de lancement de votre application (ex. : com.example.myapp.MainActivity). Indique au système Huawei sur quelle icône d’application afficher le badge.
huawei_badge_set_numinteger0–99Définit le badge à un nombre exact. 0 efface le badge.
huawei_badge_add_numinteger1–99Incrémente le compteur de badge existant de cette quantité.

Règles de comportement

  • huawei_badge_class est requis pour toute opération de badge.
  • Si huawei_badge_set_num et huawei_badge_add_num sont tous les deux fournis, huawei_badge_set_num est prioritaire.
  • Si aucun n’est fourni (mais que huawei_badge_class est défini), le compteur de badge s’incrémente de 1 par défaut.

Envoyer un push Huawei avec des badges

  1. Accédez à Messages > Push ou Modèles
  2. Sous Paramètres de plateforme > Envoyer vers Huawei Android > Badge
  3. Choisissez l’une des options suivantes :
    • Ne pas définir — le badge n’est pas affecté par cette notification
    • Définir à — définit le badge à un nombre spécifique (0-99)
    • Augmenter de — incrémente le compteur de badge existant (1-99)

Effacer les badges

Huawei n’efface pas automatiquement le badge lorsqu’un utilisateur ouvre l’application ou appuie sur une notification. Pour effacer le badge, vous avez deux options :
  • Via l’API ou le tableau de bord : Envoyez une notification avec huawei_badge_set_num défini à 0 (ou utilisez Définir à > 0 dans le tableau de bord). Cela peut être une notification de données/en arrière-plan si vous ne voulez pas qu’une notification visible apparaisse.
  • Via le code côté client : Votre application peut effacer le badge localement en utilisant l’API de badge Huawei. Cela nécessite la permission com.huawei.android.launcher.permission.CHANGE_BADGE dans votre AndroidManifest.xml. Consultez le guide de développement des badges Huawei pour les détails d’implémentation.
Le paramètre huawei_badge_set_num nécessite EMUI 10.0.0 ou ultérieur et Push SDK 10.1.0 ou ultérieur. Sur les appareils plus anciens, seul huawei_badge_add_num est pris en charge.

Badges iOS

Pour garantir que les compteurs de badges s’incrémentent correctement sur iOS, vous devez configurer :
  • Le OneSignalNotificationServiceExtension
  • App Groups
Consultez Configuration du SDK mobile pour les instructions complètes. Par défaut, le SDK OneSignal va :
  1. Effacer le badge de l’icône de l’application lorsque l’application est ouverte.
  2. Supprimer les notifications du Centre de notifications.
Si vous souhaitez conserver les notifications et gérer la logique des badges manuellement (par exemple, en utilisant votre propre compteur ou en synchronisant l’état entre les appareils), vous pouvez désactiver ce comportement automatique. Cas d’utilisation courants pour le contrôle manuel des badges
  • Réinitialiser le badge au lancement ou à la reprise de l’application
  • Incrémenter le badge lorsqu’une notification est reçue au premier plan
  • Décrémenter lorsqu’un message est lu ou ignoré
  • Synchroniser l’état du badge entre les appareils ou les extensions d’application via App Groups ou votre backend

Désactiver le nettoyage automatique des notifications et des badges

Dans le info.plist de votre application, ajoutez la clé : OneSignal_disable_badge_clearing de type Boolean avec la valeur YES
Xcode Info.plist editor showing OneSignal_disable_badge_clearing set to YES
<key>OneSignal_disable_badge_clearing</key>
<true/>
Cela empêche le SDK de supprimer automatiquement les notifications ou de réinitialiser le badge lorsque l’application s’ouvre.

Gestion native des badges iOS

Si vous désactivez le nettoyage automatique des badges de OneSignal, vous pouvez utiliser les API natives d’Apple pour contrôler le comportement des badges.
Apple a déprécié UIApplication.shared.applicationIconBadgeNumber dans iOS 17. Vous devez maintenant utiliser les méthodes suivantes du framework UserNotifications :
Définir le compteur de badge Pour définir le badge sur l’icône de l’application à une valeur spécifique :
import UserNotifications
import UIKit

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(5) { error in
    if let error = error {
      print("Failed to set badge count: \(error.localizedDescription)")
    } else {
      print("Badge count updated successfully.")
    }
  }
} else {
  UIApplication.shared.applicationIconBadgeNumber = 5
}
Obtenir le compteur de badge actuel iOS ne fournit pas de méthode pour récupérer le compteur de badge actuel du système. Vous devez suivre le compteur de badge dans l’état de votre application (par exemple, en utilisant UserDefaults, le modèle de données de votre application ou en synchronisant avec votre backend).
// Exemple : Stocker et récupérer le compteur de badge en utilisant UserDefaults
let badgeCount = UserDefaults.standard.integer(forKey: "badgeCount")
// Mettre à jour le compteur de badge selon les besoins
UserDefaults.standard.set(badgeCount, forKey: "badgeCount")
Incrémenter ou décrémenter le badge Vous devez gérer la logique des badges manuellement, car les changements relatifs (comme +1 ou -1) ne sont pas pris en charge dans les payloads. Mettez à jour votre compteur de badge stocké, puis définissez-le :
// Exemple : Incrémenter le compteur de badge et mettre à jour le badge système
let currentCount = UserDefaults.standard.integer(forKey: "badgeCount")
let updatedCount = max(0, currentCount + 1)
UserDefaults.standard.set(updatedCount, forKey: "badgeCount")

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(updatedCount)
} else {
  UIApplication.shared.applicationIconBadgeNumber = updatedCount
}
Effacer le badge Pour supprimer complètement le badge :
if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(0)
} else {
  UIApplication.shared.applicationIconBadgeNumber = 0
}

Envoyer des push iOS avec badges

Vous pouvez définir le compteur de badge dans le tableau de bord OneSignal ou en utilisant l’API.
  1. Accédez à Messages > Push ou Modèles.
  2. Sous Paramètres de plateforme > Envoyer vers Apple iOS > Badges.
  3. Choisissez soit :
    • Définir à un nombre spécifique.
    • Augmenter d’un montant relatif.
OneSignal dashboard push message form showing iOS badge count options
Lors de l’envoi de notifications push iOS, le compteur de badge change en fonction de ces options. Si l’application est ouverte, le compteur de badge se réinitialise sauf si vous désactivez le nettoyage automatique des badges.

FAQ

Pourquoi mon compteur de badge ne s’incrémente-t-il pas sur iOS ?

Assurez-vous d’avoir configuré le OneSignalNotificationServiceExtension et les App Groups. Sans ces éléments, les compteurs de badge ne peuvent pas s’incrémenter correctement. Consultez Configuration du SDK mobile pour les instructions complètes.

Comment effacer les badges sur Huawei ?

Envoyez une notification avec huawei_badge_set_num défini sur 0, ou utilisez Définir à > 0 dans le tableau de bord. Vous pouvez également utiliser une notification de données/en arrière-plan pour effacer les badges sans afficher de notification visible. Vous pouvez aussi effacer le badge côté client en utilisant l’API de badge Huawei.

Puis-je définir des badges pour les push Web ?

Non. Les badges d’icône d’application ne sont pris en charge que sur iOS, Android et Huawei. Pour Android Web Push, le “badge” fait référence à la petite icône affichée sur la notification elle-même — voir Badges push Web.

Pages connexes

Catégories de notification Android

Contrôlez l’affichage et le comportement des badges par canal de notification sur Android.

Autorisation Huawei

Configurez la messagerie push Huawei avec OneSignal.

Vue d'ensemble Push

Référence complète des fonctionnalités de notifications push, y compris les badges push Web.

Configuration du SDK mobile

Configurez le SDK OneSignal, y compris les prérequis de badge pour iOS.