API de notifications push (OneSignal, Firebase, Pushwoosh)
Envoyez des notifications push aux utilisateurs de votre application Android avec OneSignal, Firebase ou Pushwoosh — configuration, deep links et ciblage par utilisateur expliqués.
Les notifications push sont des notifications qui apparaissent sur votre smartphone sans avoir à ouvrir l'application. Ce type de message permet une interaction fantastique avec les clients et les utilisateurs de l'application. Votre application n'a pas besoin d'être ouverte. Ainsi, vos clients ne manquent aucune nouvelle ou aucun message important. Les notifications push conviennent à de nombreux cas d'usage, par exemple pour les mises à jour de commandes, les live tickers ou les communautés de réseaux sociaux. Une connexion Internet est nécessaire pour que les utilisateurs de l'application puissent recevoir des messages push. WebViewGold prend en charge plusieurs moyens pour atteindre vos utilisateurs via des notifications push.
Option 1 : Utiliser l'API JavaScript des notifications push locales
Vous pouvez insérer un extrait de code (JavaScript) dans votre site web afin de définir une notification push, qui pourra être affichée après la fermeture de votre application (la planification se faisant pendant que l'application est ouverte). Cela fonctionne sans aucune configuration OneSignal.
<script>
var title = "Your cart is waiting!"; //notification title
var message = "You have left a cart full of dreams and deals behind. Dont leave it feeling abandoned"; //notification message
var seconds = 120; //seconds from now on
var url = "https://myshop.org/cart.php"; //deep-linking URL
window.location.href = "sendlocalpushmsg://push.send?s="+ seconds +"=msg!"+ message +"&!#"+ title +"&!#"+ url +"";
</script>
Cela peut être utilisé dans différentes situations (comptes à rebours, happy hours (comme dans l'exemple de code), rappels, ...).
Pour annuler toutes les notifications push locales programmées, exécutez :
<script>
window.location.href = "sendlocalpushmsg://push.send.cancel";
</script>
Option 2 : Utiliser les notifications push distantes Pushwoosh
Les utilisateurs de WebViewGold bénéficient de deux mois gratuits de Pushwoosh !
Pour profiter de cette offre, veuillez envoyer votre licence WebViewGold par e-mail à [email protected] et vous recevrez rapidement une réponse personnalisée.
Si vous souhaitez utiliser Pushwoosh (excellent choix !) pour les notifications push dans votre application, activez simplement les options dans Config.java en réglant PUSHWOOSH_ENABLED sur true et veillez également à mettre à jour les identifiants Pushwoosh dans les fichiers string.xml et AndroidManifest.xml avec vos propres identifiants Pushwoosh :


Félicitations, votre configuration est déjà terminée. Vous êtes maintenant prêt à envoyer des notifications push :

Vous souhaitez récupérer l'identifiant d'appareil de chaque utilisateur pour des notifications push personnalisées ou un traitement ultérieur ? Il suffit de régler WONDERPUSH_ENHANCE_WEBVIEW_URL sur true dans Config.java pour ajouter ?pushwoosh_id=XYZ à l'URL de votre WebView :
Par exemple, si l'URL de votre WebView est https://www.example.org, WebViewGold appellera à la place https://www.example.org?pushwoosh_id=XYZ. Souvenez-vous que seule la première requête d'URL recevra cette variable GET ; veuillez donc l'enregistrer dans une session ou un cookie afin de pouvoir l'utiliser dans vos pages liées. Alternativement ou en complément, vous pouvez récupérer et traiter cette information sur n'importe quelle page à l'aide de JavaScript :
<script> window.location.href = "getpushwooshid://"; alert(pushwooshplayerid); </script>
Option 3 : Utiliser les notifications push distantes OneSignal
Si vous souhaitez utiliser OneSignal pour configurer des notifications push distantes, ce tutoriel vidéo vous guidera pas à pas tout au long du processus.
En résumé, la procédure pour configurer OneSignal pour les notifications push est la suivante :
- Ouvrez Android Studio et repérez les options OneSignal. Par défaut, PUSH_ENABLE, PUSH_ENHANCE_WEBVIEW_URL et PUSH_RELOAD_ON_USERID sont réglés sur false ; passez-les à true.
- Ouvrez votre compte OneSignal et sélectionnez votre organisation et le nom de votre application.
- Si vous n'avez pas encore créé votre application dans le projet OneSignal, suivez d'abord ces étapes.
Remplacez ic_stat_onesignal_default.png pour remplacer l'icône cloche de secours par défaut des notifications push OneSignal.
Vous souhaitez récupérer l'identifiant d'abonnement individuel de chaque utilisateur sur votre serveur pour un traitement ultérieur et pour envoyer des messages push individuels ? Activez simplement l'option PUSH_ENHANCE_WEBVIEW_URL dans Config.java (en passant la valeur de false à true) pour ajouter ?onesignal_push_id=XYZ à l'URL de votre WebView. Si l'URL de votre WebView est https://www.example.org, WebViewGold appellera à la place https://www.example.org?onesignal_push_id=XYZ. Seule la PREMIÈRE requête d'URL recevra cette variable GET ; enregistrez-la donc dans une session ou un cookie pour y accéder sur vos pages liées. Une autre approche possible, ou complémentaire, consiste à récupérer et traiter cette information sur n'importe quelle page via JavaScript :
<script> window.location.href = "getonesignalplayerid://"; alert(onesignalplayerid); </script>
Alternativement, envisagez de passer
AUTO_INJECT_VARIABLES à true dans Config.java afin d'injecter automatiquement cette valeur (et d'autres) dans JavaScript sans avoir à appeler une URL au préalable.
Option 4 : Utiliser les notifications push distantes Firebase
Si vous souhaitez utiliser Firebase pour configurer des notifications push distantes, ce tutoriel vidéo vous guidera pas à pas tout au long du processus.
En résumé, la procédure pour configurer Firebase pour les notifications push est la suivante :
1. Renommer le nom du package et créer un projet Firebase
Veuillez renommer le nom du package de votre application Android WebViewGold. Ensuite, vous devez créer un projet Firebase dans votre Firebase Console.
2. Activer Firebase dans WebViewGold
Dans Android Studio, allez dans le fichier Config.java et passez la variable FIREBASE_PUSH_ENABLED à true.

3. Enregistrer votre application auprès de Firebase
Après avoir créé votre projet Firebase, vous pouvez y ajouter votre application WebViewGold.
a. Sur la page d'aperçu du projet dans la console Firebase, cliquez sur l'icône Android pour lancer le processus de configuration.
b. Si vous avez déjà ajouté une application à votre projet Firebase, cliquez sur Ajouter une application pour afficher les options de plateforme.
Saisissez le nom du package de votre application tel qu'il a été modifié/défini à cette étape.
Assurez-vous de saisir le nom de package utilisé par votre application. Vous ne pouvez ni ajouter ni modifier cette valeur après l'enregistrement de votre application auprès de votre projet Firebase.
4. Cliquez sur le bouton Enregistrer l'application.
5. Téléchargez google-services.json
Cliquez sur « Télécharger google-services.json » pour obtenir votre fichier de configuration Firebase Android (google-services.json) et remplacez le fichier exemple déjà inclus dans le projet WebViewGold à l'aide du Finder de Mac ou de l'Explorateur Windows :

C'est tout !
Si vous souhaitez utiliser le deeplinking d'URL Firebase (qui ouvre une URL spécifique lorsque l'on clique sur votre notification), veuillez ajouter l'URL souhaitée dans un champ Custom Data (dans la section Additional options (optional)) avec Key = « url » et Value = {l'URL souhaitée}.

Vous souhaitez récupérer l'identifiant d'abonnement individuel de chaque utilisateur sur votre serveur pour un traitement ultérieur et pour envoyer des messages push individuels ? Activez simplement l'option FIREBASE_PUSH_ENHANCE_WEBVIEW_URL dans Config.java (en passant la valeur de false à true) pour ajouter ?firebase_push_id=XYZ à l'URL de votre WebView. Si l'URL de votre WebView est https://www.example.org, WebViewGold appellera à la place https://www.example.org?firebase_push_id=XYZ. Seule la PREMIÈRE requête d'URL recevra cette variable GET ; enregistrez-la donc dans une session ou un cookie pour y accéder sur vos pages liées. Une autre approche possible, ou complémentaire, consiste à récupérer et traiter cette information sur n'importe quelle page via JavaScript :
<script> window.location.href = "getfirebaseplayerid://"; alert(firebaseplayerid); </script>
Alternativement, envisagez de passer
AUTO_INJECT_VARIABLES à true dans Config.java afin d'injecter automatiquement cette valeur (et d'autres) dans JavaScript sans avoir à appeler une URL au préalable.
Option 5 : Utiliser les notifications push bubble.io
1. Créez une application bubble.io
2. Installez le plugin WebViewGold OneSignal Push :

3. Suivez les instructions OneSignal (voir ci-dessus) et les instructions du plugin (voir ici et ici).
APIs de permission push : Demander au bon moment et vérifier le statut actuel
Demander manuellement la permission de notifications push (registerpush://)
Par défaut, WebViewGold demande à l'utilisateur la permission de notifications push au premier lancement de l'application (requirePush = true dans Config.java). Les demandes de permission convertissent bien mieux lorsqu'elles apparaissent dans le bon contexte — vous pouvez donc aussi définir requirePush sur false et déclencher la boîte de dialogue native de permission depuis votre web app au moment idéal (p. ex. après la connexion ou l'onboarding) :
<a href="registerpush://">Activer les notifications</a>
window.location.href = "registerpush://";
Remarque : Cela nécessite qu'au moins un service push soit activé dans Config.java (PUSH_ENABLED, FIREBASE_PUSH_ENABLED ou PUSHWOOSH_ENABLED).
Vérifier le statut actuel de la permission push (checkNativePushPermissions://)
Pour savoir si l'utilisateur autorise actuellement les notifications push, appelez :
window.location.href = "checkNativePushPermissions://";
WebViewGold injecte alors la variable JavaScript nativePushEnabled (true ou false) dans votre page. Sous Android 13 et versions ultérieures, le réglage système des notifications et la permission d'exécution POST_NOTIFICATIONS doivent tous deux être accordés pour que la valeur soit true. Exemple :
<script>
window.location.href = "checkNativePushPermissions://";
setTimeout(function () {
if (typeof nativePushEnabled !== "undefined" && nativePushEnabled) {
console.log("Les notifications push sont activées");
} else {
// p. ex. afficher votre propre message et proposer registerpush:// ou settingsapp://
}
}, 500);
</script>
Si la permission a été refusée définitivement, vous pouvez guider l'utilisateur vers les réglages système via l'API Open App Settings (settingsapp://).