Guide d'intégration de base du SDK Capacitor
Cette section contient des informations sur la manière d’intégrer le SDK Capacitor de Pushwoosh dans votre application.
Prérequis
Anchor link toPour intégrer le SDK Capacitor de Pushwoosh dans votre application, vous aurez besoin des éléments suivants :
Étapes d’intégration
Anchor link to1. Ajouter la dépendance du SDK Capacitor de Pushwoosh
Anchor link toAjoutez la dépendance du SDK Capacitor de Pushwoosh à votre projet :
npm install pushwoosh-capacitor-pluginSynchronisez la configuration de Capacitor :
npx cap sync1.1 Choisir le gestionnaire de paquets iOS
Anchor link tonpx cap sync installe la partie iOS du plugin avec le gestionnaire de paquets utilisé par votre projet Capacitor : Swift Package Manager ou CocoaPods. Les deux fournissent la même version du SDK natif Pushwoosh et d’Inbox UI. Swift Package Manager est pris en charge avec Capacitor 7 et Capacitor 8.
Un projet existant conserve son gestionnaire de paquets : si ios/App/CapApp-SPM existe, la CLI Capacitor utilise Swift Package Manager, sinon CocoaPods. Pour une nouvelle plateforme iOS :
Capacitor 8 crée par défaut un projet Swift Package Manager :
npx cap add iosPour utiliser CocoaPods à la place, exécutez npx cap add ios --packagemanager CocoaPods.
Capacitor 7 crée par défaut un projet CocoaPods. Pour utiliser Swift Package Manager, exécutez :
npx cap add ios --packagemanager SPMLa commande crée le projet, puis s’arrête avec une erreur ENOENT ... Podfile en essayant d’exécuter pod install. Le projet est créé correctement. Terminez la configuration avec :
npx cap sync iosAvec Swift Package Manager, la CLI Capacitor ajoute le plugin à ios/App/CapApp-SPM, et le plugin apporte le SDK iOS Pushwoosh et Inbox UI. N’ajoutez pas le SDK Pushwoosh une seconde fois à l’application, ni en tant que pod ni en tant que paquet d’une autre version.
2. Initialisation du SDK Capacitor
Anchor link toDans votre fichier JavaScript principal, importez et initialisez le SDK Pushwoosh :
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDKPushwoosh.onDeviceReady({ appid: "__YOUR_APP_CODE__"});
// Register for push notificationsPushwoosh.registerDevice() .then(result => { console.log("Push token:", result.pushToken); // Handle successful registration }) .catch(error => { console.error("Failed to register device:", error); // Handle registration error });Où :
__YOUR_APP_CODE__est le code d’application du Control Panel de Pushwoosh.
3. Configuration native pour iOS
Anchor link to3.1 Capacités
Anchor link toPour activer les notifications push dans votre projet, vous devez ajouter certaines capacités.
Dans la section Signing & Capabilities, ajoutez les capacités suivantes :
Push NotificationsBackground Modes. Après avoir ajouté cette capacité, cochez la caseRemote notifications.
Si vous avez l’intention d’utiliser les notifications urgentes (Time Sensitive Notifications, iOS 15+), ajoutez également la capacité Time Sensitive Notifications.
3.2 Info.plist
Anchor link toDans votre ios/App/App/Info.plist, définissez la clé __PUSHWOOSH_DEVICE_API_TOKEN__ sur le Pushwoosh Device API Token :
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>3.3 Suivi de la livraison des messages
Anchor link toVous devez ajouter une cible Notification Service Extension à votre projet. C’est essentiel pour un suivi précis de la livraison et pour des fonctionnalités comme les Rich Media sur iOS.
Suivez les étapes du guide natif pour ajouter la cible d’extension et le code Pushwoosh nécessaire à l’intérieur. Ajoutez le SDK Pushwoosh à la cible de l’extension selon votre gestionnaire de paquets :
-
CocoaPods : suivez l’étape Dépendances pour l’extension de service de notification (CocoaPods uniquement) du guide natif. Dans
ios/App/Podfile, ajoutezpod 'PushwooshXCFramework'sans version à la cible de l’extension, afin qu’il se résolve vers la version utilisée par le plugin, puis exécuteznpx cap sync ios. -
Swift Package Manager : ignorez l’étape des dépendances CocoaPods du guide natif. Ajoutez vous-même le SDK à la cible de l’extension dans Xcode, car la cible n’hérite pas des dépendances du plugin :
- Ouvrez la cible de l’extension > General > Frameworks and Libraries.
- Ajoutez le produit
PushwooshFrameworkdu paquetPushwoosh-XCFramework. Utilisez la version déjà présente dansPackage.resolved.
Si vous avez migré depuis CocoaPods, assurez-vous que l’extension ne reçoit plus
PushwooshXCFrameworken tant que pod, afin que l’application n’inclue pas le SDK deux fois.
Ensuite, ajoutez import PushwooshFramework dans le code de l’extension. La cible App n’a besoin de rien de plus, car elle obtient le SDK Pushwoosh via le plugin.
4. Configuration native pour Android
Anchor link to4.1 Installer les dépendances
Anchor link toAssurez-vous que les dépendances et les plugins requis sont ajoutés à vos scripts Gradle :
Ajoutez le plugin Gradle des services Google aux dépendances de votre build.gradle au niveau du projet :
buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.15' }}Appliquez le plugin dans votre fichier build.gradle au niveau de l’application :
apply plugin: 'com.google.gms.google-services'4.2 Ajouter le fichier de configuration Firebase
Anchor link toPlacez le fichier google-services.json dans le dossier android/app de votre projet.
4.3 Ajouter les métadonnées Pushwoosh
Anchor link toDans votre main/AndroidManifest.xml, ajoutez le Pushwoosh Device API Token à l’intérieur de la balise <application> :
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />Important : Assurez-vous de donner au token l’accès à la bonne application dans votre Control Panel Pushwoosh. En savoir plus
5. Exécuter le projet
Anchor link to- Compilez et exécutez le projet.
- Allez dans le Control Panel de Pushwoosh et envoyez une notification push.
- Vous devriez voir la notification dans l’application.
Intégration étendue
Anchor link toÀ ce stade, vous avez déjà intégré le SDK et pouvez envoyer et recevoir des notifications push. Explorons maintenant les fonctionnalités de base.
Écouteurs d’événements de notification push
Anchor link toDans le SDK Capacitor de Pushwoosh, il existe deux méthodes de rappel pour gérer les notifications push :
pushReceivedCallbackest déclenché lorsqu’une notification push est reçuepushOpenedCallbackest déclenché lorsqu’un utilisateur ouvre une notification
Vous devez configurer ces rappels juste après l’initialisation du SDK :
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callbackawait Pushwoosh.pushReceivedCallback((notification, err) => { if (err) { console.error("Failed to process received notification:", err); } else { console.log("Push received:", JSON.stringify(notification)); // Handle the received notification }});
// Set up push opened callbackawait Pushwoosh.pushOpenedCallback((notification, err) => { if (err) { console.error("Failed to process opened notification:", err); } else { console.log("Push opened:", JSON.stringify(notification)); // Handle the opened notification }});Configuration de l’utilisateur
Anchor link toEn vous concentrant sur le comportement et les préférences individuels des utilisateurs, vous pouvez fournir un contenu personnalisé, ce qui entraîne une satisfaction et une fidélité accrues des utilisateurs.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration { async afterUserLogin(user) {
// Set user ID Pushwoosh.setUserId(user.getId);
// Setting additional user information as tags for Pushwoosh await Pushwoosh.setTags({ "age": user.getAge(), "name": user.getName(), "last_login": user.getLastLoginDate() }); }}Tags
Anchor link toLes tags sont des paires clé-valeur attribuées aux utilisateurs ou aux appareils, permettant une segmentation basée sur des attributs tels que les préférences ou le comportement, ce qui permet un envoi de messages ciblé.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class UpdateUser { async afterUserUpdateProfile(user) {
// Set list of favorite categories await Pushwoosh.setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// Set payment information await Pushwoosh.setTags({ "is_subscribed": user.isSubscribed(), "payment_status": user.getPaymentStatus(), "billing_address": user.getBillingAddress() }); }}Événements
Anchor link toLes événements sont des actions ou des occurrences spécifiques de l’utilisateur dans l’application qui peuvent être suivies pour analyser le comportement et déclencher des messages ou des actions correspondants.
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
// Track login event afterUserLogin(user) { Pushwoosh.postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
// Track purchase event afterUserPurchase(product) { Pushwoosh.postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}Dépannage
Anchor link toSi une notification push n’est pas délivrée, recherchez le code d’erreur de votre plateforme dans Erreurs d’envoi pour savoir ce qu’il signifie et comment le corriger.
Si vous rencontrez des problèmes lors du processus d’intégration, veuillez vous référer à la section support et communauté.