Aperçu
Ce guide explique comment intégrer les notifications push OneSignal dans une application Flutter. Il couvre tout, de l’installation à la configuration et à la gestion du service worker.Exigences
- Flutter 3.29.0+
- Application et plateforme OneSignal configurées
- macOS avec Xcode 14+ (les instructions de configuration utilisent Xcode 16.2)
- Appareil avec iOS 12+, iPadOS 12+ ou simulateur Xcode exécutant iOS 16.2+
- CocoaPods 1.16.2+
- Appareil ou émulateur Android 7.0+ avec Google Play Store (Services) installé
Configurer votre application OneSignal et votre plateforme
Configuration requise pour les notifications push Pour commencer à envoyer des notifications push avec OneSignal, vous devez d’abord configurer votre application OneSignal avec toutes les plateformes que vous prenez en charge—Apple (APNs), Google (FCM), Huawei (HMS), et/ou Amazon (ADM).Instructions étape par étape pour configurer votre application OneSignal.
Instructions étape par étape pour configurer votre application OneSignal.
Créer ou sélectionner votre application
- Pour ajouter des plateformes à une application existante, allez dans Settings > Push & In-App dans le tableau de bord OneSignal.
- Pour repartir de zéro, cliquez sur New App/Website et suivez les instructions.

L'exemple montre la création d'une nouvelle application.
Configurer et activer une plateforme
- Choisissez un nom clair et reconnaissable pour votre application et votre organisation.
- Sélectionnez la ou les plateformes que vous souhaitez configurer (iOS, Android, etc.).
- Cliquez sur Next: Configure Your Platform.

Exemple de configuration de votre première application, organisation et canal OneSignal.
Configurer les identifiants de plateforme
- Android : Configurer les identifiants Firebase
- iOS : Jeton p8 (Recommandé) ou Certificat p12
- Amazon : Générer une clé API
- Huawei : Autoriser OneSignal
Choisir le SDK cible

Sélectionnez le SDK que vous utilisez pour accéder à la documentation.
Installer le SDK et enregistrer votre App ID

Enregistrez votre App ID et invitez des membres d'équipe supplémentaires.
Configuration du SDK
1. Ajouter le SDK
Ajoutez le packageonesignal_flutter à votre fichier pubspec.yaml sous dependencies :
flutter pub get pour installer le SDK.
2. Initialiser le SDK
Dans votre fichiermain.dart, initialisez OneSignal dans le composant racine de votre application avec les méthodes fournies.
Remplacez YOUR_APP_ID par votre ID d’application OneSignal trouvé dans votre tableau de bord OneSignal Settings > Keys & IDs.
Configuration Android
Assurez-vous que votre application OneSignal est configurée pour la plateforme Android en utilisant vos identifiants Firebase. Configurez vos icônes de notification pour qu’elles correspondent à l’image de marque de votre application. Si cette étape est ignorée, une icône de cloche par défaut s’affichera pour vos notifications push. Compiler pour Android À ce stade, vous devriez pouvoir compiler et exécuter votre application sur un appareil Android physique ou un émulateur sans problème.- Continuez avec la Configuration iOS, le cas échéant.
- Ou passez directement à Tester l’intégration du SDK OneSignal.
Configuration iOS
Assurez-vous que votre application OneSignal est configurée pour la plateforme iOS en utilisant soit le Jeton p8 (Recommandé) ou le Certificat p12. Suivez ces étapes pour ajouter les notifications push à votre application iOS, y compris la prise en charge des Badges, de la Livraison confirmée et des images.1. Ajouter la capacité Push Notifications à la cible de l’application
La capacité Push Notifications permet à votre application d’enregistrer un jeton push et de recevoir des notifications.- Ouvrez le fichier
.xcworkspacede votre application dans Xcode. - Sélectionnez votre cible d’application > Signing & Capabilities
- Cliquez sur + Capability et ajoutez la capacité Push Notifications

La cible de l'application reçoit la capacité Push Notifications.
2. Ajouter la capacité Background Modes à la cible de l’application
Cela permet à votre application de se réveiller en arrière-plan lorsque des notifications push arrivent.- Ajoutez la capacité Background Modes
- Activez Remote notifications

La cible de l'application reçoit le mode d'exécution en arrière-plan Remote Notifications.
3. Ajouter la cible de l’application à un App Group
Les App Groups permettent le partage de données entre votre application et le Notification Service Extension. Requis pour la Livraison confirmée et les Badges.- Si vous n'avez PAS d'App Group configuré
- Si vous avez déjà un App Group
- Ajoutez la capacité App Groups
- Dans la capacité App Groups, cliquez sur +
- Ajoutez un nouvel ID de conteneur au format :
group.your_bundle_id.onesignal
- Conservez le préfixe group. et le suffixe .onesignal. Remplacez
your_bundle_idpar l’identifiant de bundle de votre application. - Par exemple, l’identifiant de bundle
com.onesignal.MyAppaura le nom de conteneurgroup.com.onesignal.MyApp.onesignal.

La cible de l'application fait partie de l'App Group.
4. Ajouter le Notification Service Extension
Le Notification Service Extension (NSE) permet les notifications enrichies et les analyses de Livraison confirmée.- Dans Xcode : File > New > Target…
- Sélectionnez Notification Service Extension, puis Next.
- Définissez le nom du produit sur
OneSignalNotificationServiceExtensionet appuyez sur Finish. - Appuyez sur Don’t Activate sur l’invite Activate scheme.

Sélectionnez la cible Notification Service Extension.

Nommez le Notification Service Extension.

Annulez l'activation pour continuer le débogage de la cible de votre application.

Définissez la même cible de déploiement que l'application principale.
5. Ajouter la cible NSE à l’app group
Utilisez le même ID d’App Group que vous avez ajouté à l’étape 3.- Allez dans OneSignalNotificationServiceExtension > Signing & Capabilities
- Ajoutez App Groups
- Ajoutez exactement le même ID de groupe

Le NSE appartient maintenant au même app group que votre cible d'application.
6. Mettre à jour le code NSE
- Naviguez vers le dossier OneSignalNotificationServiceExtension
- Remplacez le contenu du fichier
NotificationService.swiftouNotificationService.mpar ce qui suit :

Naviguez vers votre fichier NotificationService.

Ce fichier affiche une erreur jusqu'à ce que vous installiez le package à l'étape suivante.
7. Ajouter OneSignal à la cible NSE
Mettez à jour votreios/Podfile pour inclure :
Erreurs courantes de pod install
Vous pourriez rencontrer les erreurs suivantes, voici comment vous pouvez les résoudre.ArgumentError - \[Xcodeproj] Unable to find compatibility version string for
object version `70`.
ArgumentError - \[Xcodeproj] Unable to find compatibility version string for object version `70`.
xcodeproj pour lire vos fichiers de projet Xcode. À ce jour, la dernière version de xcodeproj ne reconnaît pas la version d’objet 70, qui a été introduite par Xcode 16. Ainsi, lorsque CocoaPods essaie d’ouvrir votre fichier .xcodeproj, il plante avec cette erreur.- Fermez Xcode.
- Naviguez vers le fichier
ios/<your-app>.xcodeproj/project.pbxprojde votre projet. - Changez cette ligne :
objectVersion = 70; - Remplacez-la par :
objectVersion = 55; - Enregistrez, fermez et réexécutez
cd ios pod install cd ..
Compiler pour iOS
Vous devriez maintenant pouvoir compiler et exécuter votre application sur un appareil iOS réel ou un simulateur iOS (16.2+).Erreurs courantes de compilation iOS
Cycle Inside... building could produce unreliable results.
Cycle Inside... building could produce unreliable results.
- Ouvrez votre dossier
.xcworkspacedans Xcode et naviguez vers votre cible d’application > Build Phases. - Vous devriez avoir une phase appelée “Embed Foundation Extensions” ou “Embed App Extensions”.
- Faites glisser et déplacez cette phase de compilation au-dessus de “Run Script”.
- Compilez et exécutez votre application. L’erreur devrait être résolue.

Ordre correct des Build Phases dans Xcode.

Décochez Copy only when installing.
Erreur PBXGroup
Erreur PBXGroup
PBXGroup a tenté d’initialiser un objet avec un ISA inconnu PBXFileSystemSynchronizedRootGroup à partir des attributs : {"isa"=>"...", "exceptions"=>["//", "..."], "explicitFileTypes"=>{}, "explicitFolders"=>[], "path"=>"OneSignalNotificationServiceExtension", "sourceTree"=>"<group>"}- Trouvez le dossier listé sous “path” dans l’erreur
- Dans la barre latérale du projet Xcode, faites un clic droit sur le dossier
- Sélectionnez Convert to Group

Erreur de chemin pour PBXGroup.

Convertir le dossier en groupe.
Tester l’intégration du SDK OneSignal
Ce guide vous aide à vérifier que votre intégration du SDK OneSignal fonctionne correctement en testant les notifications push, l’enregistrement des abonnements et la messagerie in-app.Vérifier les abonnements mobiles
Lancez votre application sur un appareil de test.
requestPermission lors de l’initialisation.
Invites d'autorisation push iOS et Android
Vérifiez votre tableau de bord OneSignal
- Allez dans Audience > Subscriptions.
- Vous devriez voir une nouvelle entrée avec le statut “Never Subscribed”.

Tableau de bord affichant un abonnement avec le statut 'Never Subscribed'
Retournez à l'application et appuyez sur Autoriser dans l'invite.
Actualisez la page Subscription du tableau de bord OneSignal.

Tableau de bord affichant un abonnement avec le statut 'Subscribed'
Configurer les abonnements de test
Les abonnements de test sont utiles pour tester une notification push avant d’envoyer un message.Ajouter aux abonnements de test.

Ajout d'un appareil aux abonnements de test
Nommez votre abonnement.

Tableau de bord affichant le champ 'Name your subscription'
Créer un segment d'utilisateurs de test.
Nommez le segment.
Test Users (le nom est important car il sera utilisé plus tard).Ajoutez le filtre Test Users et cliquez sur Create Segment.

Création d'un segment 'Test Users' avec le filtre Test Users
Envoyer un push de test via l’API
Obtenez votre clé API d'application et votre ID d'application.
Mettez à jour le code fourni.
YOUR_APP_API_KEY et YOUR_APP_ID dans le code ci-dessous par vos clés réelles. Ce code utilise le segment Test Users que nous avons créé plus tôt.Exécutez le code.
Vérifiez les images et la livraison confirmée.

Notification push avec image sur iOS et Android
Vérifiez la livraison confirmée.

Statistiques de livraison affichant la livraison confirmée

Livraison confirmée au niveau de l'appareil dans Audience Activity
Envoyer un message in-app
Les messages in-app vous permettent de communiquer avec les utilisateurs pendant qu’ils utilisent votre application.Fermez ou mettez votre application en arrière-plan sur l'appareil.
Créer un message in-app.
- Dans votre tableau de bord OneSignal, naviguez vers Messages > In-App > New In-App.
- Trouvez et sélectionnez le message Welcome.
- Définissez votre Audience comme le segment Test Users que nous avons utilisé précédemment.

Ciblage du segment 'Test Users' avec un message in-app
Personnalisez le contenu du message si désiré.

Exemple de personnalisation du message de bienvenue in-app
Définir le déclencheur sur 'On app open'.
Planifier la fréquence.

Options de planification du message in-app
Rendre le message actif.
Ouvrez l'application et voyez le message.

Message de bienvenue in-app affiché sur les appareils
- Collecter des Abonnements, définir des abonnements de test et créer des Segments.
- Envoyer des Push avec des images et une Livraison confirmée en utilisant des Segments et notre API Create message.
- Envoyer des messages in-app.
Identification des utilisateurs
Précédemment, nous avons démontré comment créer des Abonnements mobiles. Nous allons maintenant étendre l’identification des Utilisateurs sur tous leurs abonnements (y compris push, email et SMS) en utilisant le SDK OneSignal. Nous couvrirons les External IDs, les tags, les abonnements multicanaux, la confidentialité et le suivi des événements pour vous aider à unifier et engager les utilisateurs sur toutes les plateformes.Attribuer un External ID
Utilisez un External ID pour identifier les utilisateurs de manière cohérente sur tous les appareils, adresses e-mail et numéros de téléphone en utilisant l’identifiant utilisateur de votre backend. Cela garantit que votre messagerie reste unifiée sur tous les canaux et systèmes tiers (particulièrement important pour les Intégrations). Définissez l’External ID avec la méthodelogin de notre SDK chaque fois qu’ils sont identifiés par votre application.
Ajouter des tags de données
Les Tags sont des paires clé-valeur de données chaîne que vous pouvez utiliser pour stocker les propriétés des utilisateurs (commeusername, role ou les préférences) et les événements (comme purchase_date, game_level ou les interactions utilisateur). Les tags alimentent la Personnalisation des messages et la Segmentation avancées permettant des cas d’utilisation plus avancés.
Définissez les tags avec les méthodes addTag et addTags de notre SDK au fur et à mesure que les événements se produisent dans votre application.
Dans cet exemple, l’utilisateur a atteint le niveau 6 identifiable par le tag appelé current_level défini sur une valeur de 6.

Un profil utilisateur dans OneSignal avec un tag appelé "current_level" défini sur "6"

Éditeur de segment montrant un segment ciblant les utilisateurs avec une valeur current_level supérieure à 4 et inférieure à 10

Capture d'écran montrant une notification push ciblant le segment Niveau 5-10 avec un message personnalisé

La notification push est reçue sur un appareil iOS et Android avec le contenu personnalisé
Ajouter des abonnements email et/ou SMS
Plus tôt, nous avons vu comment notre SDK crée des abonnements mobiles pour envoyer des messages push et in-app. Vous pouvez également atteindre les utilisateurs via les canaux email et SMS en créant les abonnements correspondants.- Utilisez la méthode
addEmailpour créer des abonnements email. - Utilisez la méthode
addSmspour créer des abonnements SMS.

Un profil utilisateur avec des abonnements push, email et SMS unifiés par External ID
- Obtenez un consentement explicite avant d’ajouter des abonnements email ou SMS.
- Expliquez les avantages de chaque canal de communication aux utilisateurs.
- Fournissez des préférences de canal afin que les utilisateurs puissent sélectionner les canaux qu’ils préfèrent.
Confidentialité et consentement de l’utilisateur
Pour contrôler quand OneSignal collecte les données utilisateur, utilisez les méthodes de contrôle du consentement du SDK :setConsentRequired(true): Empêche la collecte de données jusqu’à ce que le consentement soit donné.setConsentGiven(true): Active la collecte de données une fois le consentement accordé.
Demander les autorisations push
Au lieu d’appelerrequestPermission() immédiatement à l’ouverture de l’application, adoptez une approche plus stratégique. Utilisez un message in-app pour expliquer la valeur des notifications push avant de demander l’autorisation.
Pour les meilleures pratiques et les détails d’implémentation, consultez notre guide Demander les autorisations push.
Écouter les événements push, utilisateur et in-app
Utilisez les écouteurs du SDK pour réagir aux actions des utilisateurs et aux changements d’état. Le SDK fournit plusieurs écouteurs d’événements auxquels vous pouvez vous connecter. Consultez notre guide de référence du SDK pour plus de détails.Événements de notification push
addClickListener(): Détecter quand une notification est tapée. Utile pour les Deep Linking.addForegroundLifecycleListener(): Contrôler comment les notifications se comportent au premier plan.
Changements d’état de l’utilisateur
addObserver()pour l’état utilisateur : Détecter quand l’External ID est défini.addPermissionObserver(): Suivre l’interaction spécifique de l’utilisateur avec l’invite d’autorisation push native.addObserver()pour l’abonnement push : Suivre quand le statut de l’abonnement push change.
Événements de message in-app
addClickListener(): Gérer les actions de clic in-app. Idéal pour le deep linking ou le suivi des événements.addLifecycleListener(): Suivre le cycle de vie complet des messages in-app (affiché, cliqué, rejeté, etc.).
Configuration avancée et capacités
Explorez davantage de capacités pour améliorer votre intégration :- 🔁 Migrer vers OneSignal depuis un autre service
- 🌍 Suivi de localisation
- 🔗 Deep Linking
- 🔌 Intégrations
- 🧩 Extensions de service mobile
- 🛎️ Boutons d’action
- 🌐 Messagerie multilingue
- 🛡️ Vérification d’identité
- 📊 Résultats personnalisés
- 📲 Live Activities
Configuration et référence du SDK mobile
Assurez-vous d’avoir activé toutes les fonctionnalités clés en consultant le guide Configuration push mobile. Pour tous les détails sur les méthodes disponibles et les options de configuration, visitez la référence du SDK mobile.support@onesignal.comVeuillez inclure :- Les détails du problème que vous rencontrez et les étapes de reproduction si disponibles
- Votre OneSignal App ID
- L’External ID ou le Subscription ID le cas échéant
- L’URL du message que vous avez testé dans le OneSignal Dashboard le cas échéant
- Tous les journaux ou messages d’erreur pertinents