Capacitor SDK: Руководство по базовой интеграции
В этом разделе содержится информация о том, как интегрировать Pushwoosh Capacitor SDK в ваше приложение.
Предварительные требования
Anchor link toДля интеграции Pushwoosh Capacitor SDK в ваше приложение вам потребуется следующее:
Шаги интеграции
Anchor link to1. Добавьте зависимость Pushwoosh Capacitor SDK
Anchor link toДобавьте зависимость Pushwoosh Capacitor SDK в ваш проект:
npm install pushwoosh-capacitor-pluginСинхронизируйте конфигурацию Capacitor:
npx cap sync2. Инициализация Capacitor SDK
Anchor link toВ вашем основном файле JavaScript импортируйте и инициализируйте Pushwoosh SDK:
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDKPushwoosh.onDeviceReady({ appid: "__YOUR_APP_CODE__", projectid: "__YOUR_FCM_SENDER_ID__"});
// 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 });Где:
__YOUR_APP_ID__— это код приложения из Панели управления Pushwoosh.__YOUR_FCM_SENDER_ID__— это номер проекта Firebase из Консоли Firebase.
3. Настройка iOS Native
Anchor link to3.1 Возможности
Anchor link toЧтобы включить Push Notifications в вашем проекте, вам необходимо добавить определенные возможности.
В разделе Signing & Capabilities добавьте следующие возможности:
Push NotificationsBackground Modes. После добавления этой возможности установите флажокRemote notifications.
Если вы планируете использовать Time Sensitive Notifications (iOS 15+), также добавьте возможность Time Sensitive Notifications.
3.2 Info.plist
Anchor link toВ вашем Runner/Info.plist установите ключ __PUSHWOOSH_DEVICE_API_TOKEN__ в Pushwoosh Device API Token:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>3.3 Отслеживание доставки сообщений
Anchor link toВы должны добавить цель Notification Service Extension в ваш проект. Это крайне важно для точного отслеживания доставки и таких функций, как Rich Media на iOS.
Следуйте шагам нативного руководства, чтобы добавить цель расширения и необходимый код Pushwoosh внутри нее.
4. Настройка Android Native
Anchor link to4.1 Установка зависимостей
Anchor link toУбедитесь, что необходимые зависимости и плагины добавлены в ваши Gradle-скрипты:
Добавьте плагин Google Services Gradle в зависимости вашего build.gradle на уровне проекта:
buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.15' }}Примените плагин в вашем файле build.gradle на уровне приложения:
apply plugin: 'com.google.gms.google-services'4.2 Добавление файла конфигурации Firebase
Anchor link toПоместите файл google-services.json в папку android/app в вашем каталоге проекта.
4.3 Добавление метаданных Pushwoosh
Anchor link toВ вашем main/AndroidManifest.xml добавьте Pushwoosh Device API Token внутри тега <application>:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />Важно: Убедитесь, что вы предоставили токену доступ к правильному приложению в вашей Панели управления Pushwoosh. Узнать больше
5. Запуск проекта
Anchor link to- Соберите и запустите проект.
- Перейдите в Панель управления Pushwoosh и отправьте push-уведомление.
- Вы должны увидеть уведомление в приложении.
Расширенная интеграция
Anchor link toНа этом этапе вы уже интегрировали SDK и можете отправлять и получать push-уведомления. Теперь давайте рассмотрим основную функциональность.
Слушатели событий push-уведомлений
Anchor link toВ Pushwoosh Capacitor SDK есть два метода обратного вызова для обработки push-уведомлений:
pushReceivedCallbackсрабатывает при получении push-уведомленияpushOpenedCallbackсрабатывает, когда пользователь открывает уведомление
Вы должны настроить эти обратные вызовы сразу после инициализации 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 }});Конфигурация пользователя
Anchor link toСосредоточившись на индивидуальном поведении и предпочтениях пользователей, вы можете доставлять персонализированный контент, что приводит к повышению удовлетворенности и лояльности пользователей.
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() }); }}Теги
Anchor link toТеги — это пары ключ-значение, присваиваемые пользователям или устройствам, позволяющие сегментировать аудиторию на основе таких атрибутов, как предпочтения или поведение, и обеспечивающие целевую рассылку сообщений.
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() }); }}События
Anchor link toСобытия — это конкретные действия или происшествия пользователя в приложении, которые можно отслеживать для анализа поведения и запуска соответствующих сообщений или действий.
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() }); }}Устранение неполадок
Anchor link toЕсли вы столкнетесь с какими-либо проблемами в процессе интеграции, пожалуйста, обратитесь к разделу поддержки и сообщества.