Passer au contenu principal

Référence de la charge utile OSNotification

Cette page explique la structure et les champs de la charge utile de notification push OneSignal via la classe OSNotification. Utilisez cette référence lors de la réception ou de la gestion des notifications dans votre application mobile.
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 déclenchent un écouteur d’événement de notification qui renvoie un objet OSNotification.
  • Android: OneSignal.setNotificationWillShowInForegroundHandler(...)
  • iOS: notificationReceivedBlock ou UNNotificationServiceExtension
Utilisez cet objet pour accéder au titre, au corps, aux données et aux autres propriétés de la notification. La classe OSNotification fournit toutes les données de charge utile de notification accessibles dans les écouteurs d’événement de notification du SDK. Elle fusionne les classes originales OSNotification et OSNotificationPayload en une seule interface basée sur des getters.

Champs Android

PropriétéTypeDescription
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 = privé, -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

PropriétéTypeDescription
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.
parseWithApnsMéthodeConvertit 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.
PropriétéTypeDescription
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 un push depuis un service différent vers un appareil utilisant déjà OneSignal, évitez de dupliquer les notifications.

Optionnel : déplacer additionalData à la racine APNS

Pour les applications iOS, vous pouvez rendre additionalData disponible à la racine de la charge utile APNS pour un accès plus facile dans les gestionnaires personnalisés.
  1. Activer dans les paramètres de l’application Utilisez l’API Mettre à jour une application et définissez :
{
  "additional_data_is_root_payload": true
}
  1. Envoyer un push avec data Il sera disponible à la racine de la charge utile APNS. Exemple :
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
Maintenant, vous pouvez accéder directement à promo_code sans vérifier le dictionnaire personnalisé.

Notifications restaurées

Les notifications seront restaurées par le SDK Android après un redémarrage ou un redémarrage de l’application.
PropriétéTypeDescription
restoringbooleantrue si la notification a été restaurée après un redémarrage de l’appareil/application.
Les notifications restaurées peuvent être ignorées en utilisant le flag restoring. Pour éviter de restaurer du contenu ancien, définissez un TTL (time-to-live) court ou à 0 sur vos notifications.

Sujets connexes