Les extensions de service de notification vous permettent d’intercepter et de modifier les notifications push avant qu’elles ne soient affichées à l’utilisateur. Cela permet la gestion des données en arrière-plan, les styles personnalisés, les pièces jointes de médias enrichis, la livraison confirmée et les options de boutons d’action.Documentation Index
Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
Use this file to discover all available pages before exploring further.
Vous pouvez accéder aux données de vos notifications push envoyées depuis OneSignal via la classe OSNotification
Extension de service de notification Android
Vous permet de traiter la notification avant qu’elle ne soit affichée à l’utilisateur. Les cas d’usage courants incluent :- Recevoir des données en arrière-plan avec ou sans affichage de notification.
- Remplacer des paramètres de notification spécifiques en fonction de la logique d’application côté client, comme la couleur d’accentuation personnalisée, le motif de vibration ou toute autre option
NotificationCompatdisponible.
Étape 1 : Créer une classe pour l’extension de service
Créez une classe qui implémenteINotificationServiceExtension et implémentez la méthode onNotificationReceived.
Le paramètre de la méthode onNotificationReceived est event de type INotificationReceivedEvent.
L’annotation
@Keep est nécessaire pour empêcher ProGuard ou R8 de renommer ou de supprimer votre classe lors de la minification.Étape 2 : Personnaliser la notification
Les exemples suivants illustrent les personnalisations courantes que vous pouvez implémenter dans la classe d’extension de service de notification.- Empêcher l'affichage de la notification
- Ajouter un champ personnalisé
- Changer la couleur et l'icône de la notification
Utilisez
event.preventDefault() pour supprimer l’affichage de la notification. Vous pouvez ensuite appeler event.getNotification().display() pour l’afficher plus tard, ou ne jamais l’appeler pour la rejeter silencieusement.Étape 3 : Ajouter l’extension de service à votre AndroidManifest.xml
Ajoutez le nom de la classe et la valeur en tant que meta-data dans le fichier AndroidManifest.xml dans la balise application. Ignorez les avertissements “unused”.
XML
com.onesignal.example.NotificationServiceExtension par le nom complet de votre classe.
Extension de service de notification iOS
L’UNNotificationServiceExtension vous permet de modifier le contenu des notifications push avant qu’elles ne soient affichées à l’utilisateur et est requis pour d’autres fonctionnalités importantes comme :- Images et médias enrichis.
- Livraison confirmée
- Badges
- Boutons d’action
- Ouvertures influencées avec Firebase Analytics
Obtenir la charge utile push iOS
La substitution dedidReceive(_:withContentHandler:) appelle OneSignalExtension.didReceiveNotificationExtensionRequest, qui transmet le bestAttemptContent à OneSignal avant qu’il ne soit affiché à l’utilisateur. Vous pouvez lire ou modifier bestAttemptContent avant que cette méthode ne soit appelée.
Dans cet exemple, nous envoyons une notification avec les données suivantes :
JSON
data supplémentaires dans la OneSignalNotificationServiceExtension via la clé a dans le dictionnaire custom de userInfo :
Dépannage de l’extension de service de notification iOS
Ce guide est destiné au débogage des problèmes avec les images, les boutons d’action ou les livraisons confirmées qui ne s’affichent pas sur les applications mobiles iOS.Vérifiez vos paramètres Xcode
Dans General > Targets, assurez-vous que votre cible d’application principale et la cible OneSignalNotificationServiceExtension ont les mêmes paramètres corrects :- Supported Destinations
- Minimum Deployment (iOS 14.5 ou supérieur)


NSExtension. Assurez-vous de voir :
XML

Désactiver “Copy only when installing”
Sélectionnez votre cible d’application principale > Build Phases > Embed App Extensions. Assurez-vous que “Copy only when installing” n’est PAS coché. Décochez-le s’il l’est :
Débogage de l’extension de service de notification iOS
Suivez ces étapes pour vérifier que l’extension de service de notification est correctement configurée.1. Mettre à jour le code OneSignalNotificationServiceExtension
OuvrezNotificationService.m ou NotificationService.swift et remplacez tout le contenu du fichier par le code ci-dessous. Cela ajoute des journaux pour aider à vérifier que l’extension s’exécute.
Remplacez YOUR_BUNDLE_ID par votre identifiant de bundle réel.
Les types de journaux de débogage doivent être activés dans la Console via Action > Include Debug Messages.
2. Changer votre schéma actif
Définissez votre schéma actif surOneSignalNotificationServiceExtension.

3. Compiler et exécuter le projet
Compilez et exécutez le projet dans Xcode sur un appareil réel.4. Ouvrir la console
Dans Xcode, sélectionnez Window > Devices and Simulators.

5. Vérifier la console
Dans la console :- Sélectionnez Action > Include Debug Messages
- Recherchez
OneSignalNotificationServiceExtensioncomme CATEGORY - Sélectionnez Start

contents si vous envoyez depuis l’API Créer une notification). Dans cet exemple, la charge utile est :
cURL

FAQ
Pourquoi mon extension de service de notification ne s’exécute-t-elle pas sur iOS ? L’extension ne s’exécute que lorsquemutable-content est défini dans la charge utile de la notification. OneSignal le définit automatiquement pour les notifications avec des pièces jointes ou des boutons d’action. Vérifiez que vos paramètres Xcode correspondent à la section de dépannage.
Puis-je empêcher l’affichage d’une notification sur Android ?
Oui. Appelez event.preventDefault() pour supprimer l’affichage. Appelez ensuite event.getNotification().display() pour l’afficher plus tard, ou ne l’appelez jamais pour la rejeter silencieusement. Consultez Notifications dupliquées pour plus d’informations.
Ai-je besoin de l’annotation @Keep sur Android ?
Oui. Elle empêche ProGuard ou R8 de renommer ou de supprimer votre classe implémentant INotificationServiceExtension lors de la minification.
Pages associées
Configuration du SDK mobile
Installez et configurez le SDK OneSignal pour iOS et Android.
Images et médias enrichis
Joignez des images, des GIFs et des vidéos aux notifications push.
Livraison confirmée
Suivez la livraison confirmée des notifications aux appareils.
Notifications dupliquées
Résolvez les notifications push dupliquées sur toutes les plateformes.