Ionic Push Notifications avec Firebase
Auteur(s) de l'article
Les pré-requis
Attention, Le système de Push Notifications ne fonctionne pas sur les émulateurs. Préservez-vous du temps et un mal de crâne et faites vos tests directement sur un appareil 😊
Plus sérieusement, grâce au système Firebase Cloud Messaging, c’est vraiment un jeu d’enfant que d’ajouter un système de Push Notifications dans une application Ionic 3.
- Détenir une application Firebase.
- Récupérer les fichiers de signature Firebase FCM.
google-services.json
pour Android etGoogleService-Info.plist
pour iOS. Voir ce lien d'aide. - (optionnel) Savoir récupérer sa clé Firebase Service Account afin d'envoyer des Push Notifications via
POST
HTTP
. Voir ce lien d'aide. - Avoir un compte développeur sur chacune des plateformes de déploiement ciblées (Android et/ou iOS).
- (Android uniquement) Configurer FCM pour utiliser le service Android Push Notifications.
Il faut avant tout créer votre application Firebase, puis il vous suffit de créer votre projet Firebase FCM Android et de télécharger le fichiergoogle-services.json
Une aide plus complète peut être trouvée en suivant ce lien Medium. - (iOS uniquement) Configurer FCM pour utiliser le service Apple Push Notifications.
Il faut avant tout créer votre application Firebase, puis, en plus de récupérer votre fichierGoogleService-Info.plist
, il faudra également récupérer votre clé Apple Push Notifications Authentication Key (APN Key) ainsi que sonprovisioning profile
. Tout ceci se fait depuis l'interface d'Apple sur iTunes Connect. Voir ce lien d'aide.
À l'aventure
- Vous avez lu l'introduction de cet article et avez complètement configuré vos environnements FCM grâce aux liens d'aide mis en avant plus haut.
- Vous connaissez les bases du développement Ionic 3 et Angular 4 et savez bootstraper une application Ionic Blank. Auquel cas voir ce lien pour plus d'aide.
Cet article se base sur la version 2.1.2 (03/06/2017) de cordova-plugin-fcm en utilisant Cordova CLI 6.4.0, Cordova Android 6.0.0 and Cordova iOS 4.3.1
Intégration du plugin Cordova Push Notifications
- Avant d'ajouter la dépendance Cordova
cordova-plugin-fcm
, veillez à télécharger les fichiers de signature Firebase FCM.google-services.json
pour Android etGoogleService-Info.plist
pour iOS. - Ajouter les deux fichiers directement à la racine de votre projet Ionic, ils seront déplacés automatiquement dans les builds des plateformes.
- Ajouter la dépendance Cordova
cordova-plugin-fcm
.
cordova plugin add cordova-plugin-fcm
- Voilà, maintenant vos applications sont capables de recevoir des Push Notifications en background.
Vous pouvez aller encore plus loin dans l'implémentation Ionic (gestion des notifications en foreground par exemple) en allant directement lire la documentation officielle du plugin accessible sur Github github.com/fechanique/cordova-plugin-fcm.
iOS build fails because of "invalid GOOGLE_APP_ID"
, c'est une erreur connue.Afin de la résoudre, il suffit de copier manuellement le fichier
GoogleService-Info.plist
dans le répertoire platforms/ios/|YourProjectname]/Resources/Resources
.Ajouter une icône et une couleur personnalisée
Cette fonctionnalité est uniquement valable pour la plateforme Android. Apple utilise obligatoirement l'icône de l'application.
Depuis Android 5+ (Lollipop), il est possible de personnaliser l’icône de notification, profitez-en !
- Avant tout, vous devez créer une icône que vous allez simplement déposer dans le dossier
/resources/android/custom/fcm_push_icon.png
.
Attention, cette icône doit être monochrome et transparente. - Ensuite, vous pouvez télécharger ce Hook Ionic et le placer dans le dossier
/hooks/android_custom_resources.js
prévu à cet effet. - Maintenant, vous pouvez modifier le fichier
config.xml
et ajouter la ligne suivante directement dans l'élément<plateform name="android">
.
<hook src="hooks/android_custom_resources.js" type="after_prepare"/>
- Une dernière étape, vous devrez certainement modifier le fichier
/hooks/android_custom_resources.js
afin d'adapter la variable$resourceDirs
avec les dossiers nécessaires selon votre version d'Android.
Voici ce que nous utilisons pour la dernier version Android 7 Nougat :
- N'oubliez pas maintenant d'ajouter le nom du fichier icône et la couleur, à chacune de vos Push Notifications :
android_custom_resources
va s'exécuter et déplacer vos fichiers de /resources/android/custom
dans chacun des dossiers resources Android définis par la variable $resourceDirs
.Envoi d'une Push Notifications
Nous vous recommandons grandement d'utiliser l'API REST de Firebase et donc d'envoyer vos propres Push Notifications en passant par un `POST` `HTTP` via cURL. En effet, la console Firebase ne propose pas toutes les fonctionnalités (Ex. personnaliser l'icône) et le service gratuit proposé par `cordova-plugin-fcm` n'est pas forcément à jour avec les dernières nouveautés.
Plusieurs solutions s’offrent à vous afin de tester vos Push Notifications:
authorization
avec votre propre Firebase Service Account)to
.Dans notre exemple, nous envoyons à tous les appareils avec
/topics/all
.