Перейти к содержанию

Базовое руководство по интеграции Cordova SDK

В этом разделе содержится информация о том, как интегрировать Pushwoosh Cordova SDK в ваше приложение.

Предварительные требования

Anchor link to

Для интеграции Pushwoosh Cordova SDK в ваше приложение вам понадобится следующее:

Шаги интеграции

Anchor link to

1. Добавьте зависимость Pushwoosh Cordova SDK

Anchor link to

Добавьте зависимость Pushwoosh Cordova SDK в ваш проект:

Terminal window
cordova plugin add pushwoosh-cordova-plugin

2. Инициализация Cordova SDK

Anchor link to

В корневом компоненте вашего файла index.js добавьте следующий код в обработчик события deviceready. Выполняйте шаги в точном порядке:

index.js
document.addEventListener('deviceready', function() {
var pushwoosh = cordova.require("pushwoosh-cordova-plugin.PushNotification");
// 1. Register notification callbacks before initialization
document.addEventListener('push-receive', function(event) {
var notification = event.notification;
console.log("Push received: " + JSON.stringify(notification));
});
document.addEventListener('push-notification', function(event) {
var notification = event.notification;
console.log("Push opened: " + JSON.stringify(notification));
});
// 2. Initialize Pushwoosh
pushwoosh.onDeviceReady({
appid: "__YOUR_APP_ID__"
});
// 3. Register the device to receive push notifications
pushwoosh.registerDevice(
function(status) {
var pushToken = status.pushToken;
// Handle successful registration
},
function(status) {
// Handle registration error
}
);
}, false);

Где:

  • __YOUR_APP_ID__ — это код приложения из Панели управления Pushwoosh.

3. Нативная настройка для iOS

Anchor link to

3.1 Capabilities

Anchor link to

Чтобы включить Push-уведомления в вашем проекте, необходимо добавить определенные capabilities (возможности).

В разделе Signing & Capabilities добавьте следующие capabilities:

  • Push Notifications
  • Background Modes. После добавления этой возможности, отметьте флажок Remote notifications.

Если вы планируете использовать Time Sensitive Notifications (iOS 15+), также добавьте capability Time Sensitive Notifications.

3.2 Info.plist

Anchor link to

В вашем файле Runner/Info.plist установите для ключа __PUSHWOOSH_DEVICE_API_TOKEN__ значение Pushwoosh Device API Token:

info.plist
<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

Anchor link to

4.1 Установка зависимостей

Anchor link to

Убедитесь, что необходимые зависимости и плагины добавлены в ваши скрипты Gradle:

Добавьте плагин Google Services Gradle в зависимости вашего build.gradle на уровне проекта:

android/build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}

Примените плагин в файле build.gradle на уровне приложения:

app/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>:

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

Важно: Убедитесь, что токен имеет доступ к нужному приложению в вашей Панели управления Pushwoosh. Узнать больше

5. Запустите проект

Anchor link to
  1. Соберите и запустите проект.
  2. Перейдите в Панель управления Pushwoosh и отправьте push-уведомление.
  3. Вы должны увидеть уведомление в приложении.

Расширенная интеграция

Anchor link to

На этом этапе вы уже интегрировали SDK и можете отправлять и получать push-уведомления. Теперь давайте рассмотрим основную функциональность.

Обработчики событий push-уведомлений

Anchor link to

В Pushwoosh SDK есть два обработчика событий, предназначенных для обработки push-уведомлений:

  • событие push-receive срабатывает, когда push-уведомление получено, пока приложение находится на переднем плане
  • событие push-notification срабатывает, когда пользователь открывает уведомление

Эти обработчики событий должны быть зарегистрированы до вызова onDeviceReady(), как показано в шаге инициализации выше. Вы можете настроить логику обработчика в соответствии с вашими потребностями:

index.js
// Register before onDeviceReady()
document.addEventListener('push-receive', function(event) {
var message = event.notification.message;
var payload = event.notification.userdata;
console.log("Push received: " + message);
// Add your custom logic here
});
document.addEventListener('push-notification', function(event) {
var message = event.notification.message;
var payload = event.notification.userdata;
console.log("Push accepted: " + message);
// Add your custom logic here (e.g., navigate to a specific screen)
});

Конфигурация пользователя

Anchor link to

Фокусируясь на поведении и предпочтениях отдельных пользователей, вы можете доставлять персонализированный контент, что приводит к повышению удовлетворенности и лояльности пользователей.

class Registration {
afterUserLogin(user) {
// Set user ID
pushwoosh.setUserId(user.getId());
// Setting additional user information as tags for Pushwoosh
pushwoosh.setTags({
"age": user.getAge(),
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
}

Теги — это пары «ключ-значение», присваиваемые пользователям или устройствам, что позволяет сегментировать аудиторию по таким атрибутам, как предпочтения или поведение, для целевых сообщений.

class UpdateUser {
afterUserUpdateProfile(user) {
// Set list of favorite categories
pushwoosh.setTags({
"favorite_categories": user.getFavoriteCategoriesList()
});
// Set payment information
pushwoosh.setTags({
"is_subscribed": user.isSubscribed(),
"payment_status": user.getPaymentStatus(),
"billing_address": user.getBillingAddress()
});
}
}

События

Anchor link to

События — это определенные действия пользователя или происшествия в приложении, которые можно отслеживать для анализа поведения и запуска соответствующих сообщений или действий.

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

Если у вас возникнут какие-либо проблемы в процессе интеграции, обратитесь к разделу поддержки и сообщества.