Passer au contenu principal
La classe OSNotification représente la charge utile de notification push dans les SDK OneSignal. Utilisez-la pour accéder au titre, au corps, aux données personnalisées et aux propriétés spécifiques à la plateforme lors de la gestion des notifications dans votre application.
Les charges utiles de notification push sont limitées à 4096 octets. Pour éviter la troncation, gardez les charges utiles sous 3500 octets. Le champ additionalData est limité à 2048 octets.

Accès à OSNotification dans votre application

Tous les SDK OneSignal fournissent un écouteur d’événement de notification qui renvoie un objet OSNotification :

Champs Android

PropertyTypeDescription
getBody()StringTexte du corps de la notification.
getTitle()StringTitre de la notification.
getLaunchURL()StringURL ouverte lorsque la notification est cliquée.
getNotificationId()StringUUID de notification OneSignal.
getAdditionalData()JSONObjectDonnées clé-valeur personnalisées définies via le tableau de bord ou l’API REST. Max 2048 octets.
getTemplateId()StringUUID de modèle, si envoyé en utilisant des modèles.
getAndroidNotificationId()intID de notification Android natif.
getLargeIcon()StringURL ou nom de ressource de la grande icône.
getSmallIcon()StringNom de ressource de la petite icône.
getSmallIconAccentColor()StringCouleur d’accentuation de l’icône au format ARGB.
getSound()StringNom de ressource du son joué.
getCollapseId()StringClé de regroupement pour le remplacement de notification.
getPriority()intPriorité Android (-2 à 2).
getLedColor()StringCouleur LED au format ARGB.
getLockScreenVisibility()intVisibilité de l’écran de verrouillage : 1 = public, 0 = private, -1 = secret.
getFromProjectNumber()StringNuméro de projet de l’expéditeur.
getGroupedNotifications()List<OSNotification>Notifications incluses dans un résumé.
getGroupKey()StringClé de groupe utilisée dans les résumés.
getGroupMessage()StringTexte du résumé.
getBackgroundImageLayout()BackgroundImageLayoutObjet pour la mise en page de l’image de fond et les couleurs de texte.
getActionButtons()List<ActionButton>Boutons d’action avec icône, texte et ID.
getRawPayload()StringChaîne JSON brute complète de la charge utile.

Champs iOS

PropertyTypeDescription
bodyNSStringTexte du corps de la notification.
titleNSStringTitre de la notification.
launchURLNSStringURL ouverte lorsque la notification est cliquée.
notificationIdNSStringUUID de notification OneSignal.
additionalDataDictionarydata clé-valeur personnalisées définies via le tableau de bord ou l’API REST. Max 2048 octets.
templateIdNSStringUUID de modèle, si envoyé en utilisant des modèles.
subtitleNSStringTexte du sous-titre.
categoryNSStringIdentifiant de catégorie iOS.
threadIdNSStringUtilisé pour regrouper les notifications en fils (iOS 10+).
badgeNSIntegerValeur absolue du badge.
badgeIncrementNSIntegerMontant pour incrémenter le badge.
contentAvailableBOOLSi content-available=1, déclenche une récupération en arrière-plan.
mutableContentBOOLSi mutable-content=1, déclenche une Extension de Service de Notification.
actionButtonsNSArrayBoutons d’action iOS.
rawPayloadNSDictionaryJSON brut complet de la charge utile.
parseWithApnsMethodConvertit la charge utile APNS brute en OSNotification. À utiliser dans les extensions de service.

OSNotificationAction (événements de clic)

Décrit l’interaction de l’utilisateur avec la notification.
PropertyTypeDescription
actionIdStringL’ID du bouton d’action cliqué.
typeenumOpened (appui par défaut) ou ActionTaken (appui sur bouton).

Structure de charge utile OneSignal personnalisée

Toutes les notifications OneSignal incluent un objet spécial "custom" dans la charge utile :
{
  "custom": {
    "i": "the-notification-id"
  }
}
Cette clé est requise pour que les SDK OneSignal traitent la notification. Si elle est manquante, les notifications ne déclencheront pas d’événements de clic ou d’analyses. Si vous envoyez des notifications push depuis un autre service vers des appareils qui utilisent également OneSignal, filtrez par cette clé pour éviter un traitement en double. Consultez Gestion de la charge utile push pour plus d’informations.

Déplacer additionalData à la racine APNS

Pour les applications iOS, vous pouvez placer les champs additionalData à la racine de la charge utile APNS plutôt qu’à l’intérieur du dictionnaire custom. Cela simplifie l’accès dans les gestionnaires de notifications personnalisés. 1. Activer via l’API Utilisez l’API Mettre à jour une application et définissez :
{
  "additional_data_is_root_payload": true
}
2. Envoyer un push avec data Les champs data apparaissent à la racine de la charge utile APNS :
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
Vous pouvez maintenant accéder directement à promo_code sans vérifier le dictionnaire custom.

Notifications restaurées (Android)

Le SDK Android restaure les notifications après un redémarrage de l’appareil ou de l’application.
PropertyTypeDescription
restoringbooleantrue si la notification a été restaurée après un redémarrage de l’appareil/application.
Vérifiez le flag restoring pour ignorer les notifications restaurées. Pour empêcher entièrement la restauration des anciennes notifications, définissez un TTL (time-to-live) court ou à 0 lors de l’envoi.

Formats de token push

  • iOS Push (APNS) : 64 caractères, hexadécimal uniquement (0-9, a-f). deviceToken.map {String(format: "%02x", $0)}.joined()
  • Android Push (FCM) : Généralement 163 caractères, alphanumérique, peut contenir des tirets, des deux-points et des tirets bas.

FAQ

Quelle est la taille maximale de la charge utile ?

Les charges utiles de notification push sont limitées à 4096 octets au total. Le champ additionalData est limité à 2048 octets. Pour éviter la troncation, gardez votre charge utile totale sous 3500 octets.

Comment identifier une notification OneSignal dans la charge utile brute ?

Toutes les notifications OneSignal incluent un objet "custom" avec une clé "i" contenant l’ID de notification. Vérifiez cette clé pour distinguer les notifications OneSignal de celles envoyées par d’autres fournisseurs.

Puis-je accéder à additionalData dans la racine de la charge utile APNS ?

Oui. Activez additional_data_is_root_payload via l’API Mettre à jour une application pour placer les champs additionalData à la racine APNS plutôt qu’à l’intérieur du dictionnaire custom. Consultez Déplacer additionalData à la racine APNS pour plus de détails.

Catégories de notification Android

Configurez les canaux de notification pour les appareils Android 8.0+.

Extensions de service mobile

Ajoutez des médias enrichis, des badges et le suivi de livraison confirmée.

Référence du SDK mobile

Référence complète des méthodes et écouteurs du SDK mobile OneSignal.