Personnalisation du plugin Cordova
Notifications push au premier plan
Anchor link toLors 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’applicationALERT– notification d’alerte
ANDROID_FOREGROUND_PUSH
true– ne pas gérer automatiquement les notifications push au premier planfalse– 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 toPour 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 toL’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 toLes 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 toAfin 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 SDKERROR– n’affiche que les erreurs dans la consoleWARNING– affiche les avertissementsINFO– affiche les messages d’informationDEBUG– 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 toNous 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 toVous 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 toSi 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 toVos 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.