Passer au contenu

Personnalisation du plugin Cordova

Notifications push au premier plan

Anchor link to

Lors de la réception d’une notification push en arrière-plan, aucun événement n’est déclenché jusqu’à ce que l’on clique sur la notification. Une fois ouverte, le plugin Pushwoosh déclenche les événements push-receive et push-notification.

Lorsqu’une notification push est reçue au premier plan, le plugin déclenche automatiquement push-receive et crée une notification dans le Centre de notifications. Lorsque cette notification est ouverte, il déclenche push-notification.

Vous pouvez écouter l’événement push-receive pour réagir immédiatement à une notification push si elle est reçue au premier plan, par exemple pour mettre à jour le contenu de la page actuelle de votre application. D’un autre côté, push-notification est utilisé pour réagir à un événement de clic sur une notification, ce qui nécessite une interaction de l’utilisateur, par exemple pour naviguer dans votre application, déclencher un nouveau processus, etc.

Pour modifier l’apparence des notifications push au premier plan, vous pouvez utiliser les préférences IOS_FOREGROUND_ALERT_TYPE et ANDROID_FOREGROUND_PUSH :

IOS_FOREGROUND_ALERT_TYPE

  • NONE – n’affiche pas de notification lorsque l’application est au premier plan (par défaut)
  • BANNER – affiche une alerte sous forme de bannière dans l’application
  • ALERT – notification d’alerte

ANDROID_FOREGROUND_PUSH

  • true – ne pas gérer automatiquement les notifications push au premier plan
  • false – gérer automatiquement les notifications push au premier plan (par défaut)

Exemple :

cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="ALERT" --variable ANDROID_FOREGROUND_PUSH="true"

Son de notification push personnalisé

Anchor link to

Pour activer un son de notification personnalisé sur Android, placez les fichiers sonores dans le dossier www/res et spécifiez chaque son dans config.xml :

<?xml version=‘1.0’ encoding=‘utf-8’?>
<widget id="YOUR_ID" version="1.0.0" xmlns="http://www.w3.org/ns/widgets” xmlns:cdv=“http://cordova.apache.org/ns/1.0">
...
<platform name="android">
<allow-intent href="market:*" />
...
<-- Add this line for each sound -->
<resource-file src="www/res/push.wav" target="res/raw/push.wav" />
</platform>
</widget>

Les sons seront accessibles dans le menu déroulant Son du panneau Envoyer un push.

Sur iOS, les fichiers sonores ne sont pas encore automatiquement associés à l’application Pushwoosh, mais peuvent être utilisés manuellement, par exemple www/res/sound_name.wav.

Icône de notification push personnalisée

Anchor link to

L’icône de notification push peut être personnalisée sur Android localement en utilisant pw_notification comme nom de ressource pour cette icône (voir l’exemple 1 2) ; ou à distance en référençant n’importe quel nom de ressource dans le paramètre Icône du panneau Envoyer un push.

Données de notification push personnalisées

Anchor link to

Les données de notification push personnalisées peuvent être envoyées en utilisant le paramètre Action dans le panneau Envoyer un push. Pour recevoir et gérer ces données, utilisez le code suivant :

document.addEventListener('push-notification',
function(event) {
var message = event.notification.message; // Push message
var userData = event.notification.userdata; // Custom push data
if (userData) {
// handle custom push data here
}
}
);

Contrôle du niveau de journalisation

Anchor link to

Afin de faciliter le débogage et l’intégration, le SDK affichera par défaut toutes les requêtes dans la console. Lorsque vous êtes prêt pour la version de production, définissez la variable LOG_LEVEL sur l’une des valeurs suivantes :

  • NONE – aucun journal du SDK
  • ERROR – n’affiche que les erreurs dans la console
  • WARNING – affiche les avertissements
  • INFO – affiche les messages d’information
  • DEBUG – affiche tout, y compris les informations de débogage (par défaut)

Exemple :

cordova plugin add pushwoosh-cordova-plugin --variable LOG_LEVEL="INFO"

Liens profonds

Anchor link to

Nous recommandons d’utiliser https://github.com/EddyVerbruggen/Custom-URL-scheme
Il est très facile de configurer des liens profonds pour Cordova et cela fonctionne nativement avec la fonctionnalité de liens profonds de Pushwoosh.

Vous trouverez les instructions d’installation et d’utilisation dans ce guide ou dans la documentation du plugin.

Pont JS pour Rich Media

Anchor link to

Vous pouvez appeler vos fonctions JS depuis un Rich Media dans une WebView Cordova via des interfaces JavaScript.
Un appel depuis un Rich Media doit avoir le format suivant :

<interface>.callFunction(‘<function_name>’, <params_string>)

Exemple :

1. Créez un Rich Media avec un appel JavaScript :

testBridge.callFunction('testFunction', JSON.stringify({'param1' : 1, 'param2':'test'}))

2. Ajoutez une interface JavaScript à votre projet :

pushNotification.addJavaScriptInterface('testBridge');

3. Ajoutez la fonction :

function testFunction(params) {
alert("Bridge is working! " + params.param1 + " " + params.param2);
}

Utilisation du plugin Pushwoosh avec d’autres services FCM

Anchor link to

Si votre application utilise d’autres plugins qui dépendent de firebase-messaging, cela peut entraîner des conflits ou un dysfonctionnement de l’un des plugins. Pour résoudre ce conflit, vous pouvez ajouter une classe FirebaseMessagingService personnalisée qui acheminera les notifications push entre les plugins. Le plugin Cordova de Pushwoosh contient un modèle de cette classe que vous pouvez utiliser tel quel pour forcer toutes les notifications à passer par les gestionnaires de Pushwoosh ou le modifier pour gérer également les notifications d’autres fournisseurs. Pour activer le modèle, décommentez les lignes suivantes dans le fichier plugin.xml du plugin :

<service android:name="com.pushwoosh.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

Partagez vos commentaires avec nous

Anchor link to

Vos commentaires nous aident à créer une meilleure expérience, nous serions donc ravis de connaître votre avis si vous rencontrez des problèmes lors du processus d’intégration du SDK. Si vous rencontrez des difficultés, n’hésitez pas à nous faire part de vos réflexions via ce formulaire.