Skip to content

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

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

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

Section titled “Предварительные требования”

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

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

Section titled “1. Добавьте зависимость Wavesend Cordova SDK”

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

Terminal window
cordova plugin add wavesend-cordova-plugin

В корневом компоненте вашего файла index.js:

  • Инициализируйте Wavesend SDK.
  • Вызовите registerDevice() в вашей логике инициализации для регистрации push-уведомлений.
index.js
function onDeviceReady() {
var pushwoosh = cordova.require("wavesend-cordova-plugin.PushNotification");
pushwoosh.onDeviceReady({
appid: "__YOUR_APP_ID__",
projectid: "__YOUR_FCM_SENDER_ID__"
});
pushwoosh.registerDevice(
function(status) {
var pushToken = status.pushToken;
// Обработка успешной регистрации
},
function(status) {
// Обработка ошибки регистрации
}
);

Где:

  • __YOUR_APP_ID__ — это application code из Wavesend Control Panel.
  • __YOUR_FCM_SENDER_ID__ — это номер проекта Firebase из Firebase Console.

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

Section titled “3. Нативная настройка iOS”

Чтобы включить push-уведомления в вашем проекте, необходимо добавить определенные capabilities.

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

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

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

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

info.plist
<key>Wavesend_API_TOKEN</key>
<string>__WAVESEND_DEVICE_API_TOKEN__</string>

3.3 Отслеживание доставки сообщений

Section titled “3.3 Отслеживание доставки сообщений”

Вы должны добавить Notification Service Extension в ваш проект. Это необходимо для точного отслеживания доставки и таких функций, как Rich Media на iOS.

Следуйте шагам в нативном руководстве, чтобы добавить расширение и необходимый код Wavesend в него.

4. Нативная настройка Android

Section titled “4. Нативная настройка Android”

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

Section titled “4.1 Установка зависимостей”

Убедитесь, что необходимые зависимости и плагины добавлены в ваши скрипты 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

Section titled “4.2 Добавьте конфигурационный файл Firebase”

Поместите файл google-services.json в папку android/app в каталоге вашего проекта.

4.3 Добавьте метаданные Wavesend

Section titled “4.3 Добавьте метаданные Wavesend”

В вашем main/AndroidManifest.xml добавьте Wavesend Device API Token внутри тега <application>:

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

Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в Wavesend Control Panel. Узнать больше

  1. Соберите и запустите проект.
  2. Перейдите в Wavesend Control Panel и отправьте push-уведомление.
  3. Вы должны увидеть уведомление в приложении.

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

Section titled “Расширенная интеграция”

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

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

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

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

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

Вы должны настроить эти обработчики событий сразу после инициализации SDK при запуске приложения:

index.js
class PushwooshNotificationHandler {
setupPushListeners() {
document.addEventListener('push-receive',
function(event) {
console.log("Получено push-уведомление: " + event.notification.message);
}
);
document.addEventListener('push-notification',
function(event) {
console.log("Принято push-уведомление: " + event.notification.message);
}
);
}
}

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

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

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

class Registration {
afterUserLogin(user) {
// Установить User ID
pushwoosh.setUserId(user.getId());
// Установка дополнительной информации о пользователе в виде тегов для Wavesend
pushwoosh.setTags({
"age": user.getAge(),
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
}

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

class UpdateUser {
afterUserUpdateProfile(user) {
// Установить список любимых категорий
pushwoosh.setTags({
"favorite_categories": user.getFavoriteCategoriesList()
});
// Установить платежную информацию
pushwoosh.setTags({
"is_subscribed": user.isSubscribed(),
"payment_status": user.getPaymentStatus(),
"billing_address": user.getBillingAddress()
});
}
}

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

class Registration {
// Отследить событие входа
afterUserLogin(user) {
pushwoosh.postEvent("login", {
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
// Отследить событие покупки
afterUserPurchase(product) {
pushwoosh.postEvent("purchase", {
"product_id": product.getId(),
"product_name": product.getName(),
"price": product.getPrice(),
"quantity": product.getQuantity()
});
}
}

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