Руководство по базовой интеграции React Native SDK
В этом разделе содержится информация о том, как интегрировать Wavesend React Native SDK в ваше приложение.
Предварительные требования
Section titled “Предварительные требования”Для интеграции Wavesend React Native SDK в ваше приложение вам понадобится следующее:
Шаги интеграции
Section titled “Шаги интеграции”1. Добавление зависимости Wavesend React Native SDK
Section titled “1. Добавление зависимости Wavesend React Native SDK”Добавьте зависимость Wavesend React Native SDK в ваш проект:
npm install pushwoosh-react-native-plugin --save2. Инициализация React Native SDK
Section titled “2. Инициализация React Native SDK”В корневом компоненте вашего файла index.js:
- Импортируйте
pushwoosh-react-native-plugin. - Инициализируйте Wavesend SDK.
- Вызовите
register()в вашей логике инициализации, чтобы зарегистрироваться для получения push-уведомлений.
import Pushwoosh from 'pushwoosh-react-native-plugin';
AppRegistry.registerComponent(appName, () => App);
Pushwoosh.init({ "pw_appid" : "__YOUR_APP_ID__" , "project_number" : "__YOUR_FCM_SENDER_ID__"});
Pushwoosh.register();Где:
__YOUR_APP_ID__— этоApplication Codeиз Панели управления Wavesend.__YOUR_FCM_SENDER_ID__— это номер проекта Firebase из Firebase Console.
3. Нативная настройка для iOS
Section titled “3. Нативная настройка для iOS”3.1 Capabilities
Section titled “3.1 Capabilities”Чтобы включить Push-уведомления в вашем проекте, необходимо добавить определенные capabilities (возможности).
В разделе Signing & Capabilities добавьте следующие capabilities:
Push NotificationsBackground Modes. После добавления этой возможности отметьте галочкойRemote notifications.
Если вы планируете использовать Time Sensitive Notifications (iOS 15+), добавьте также capability Time Sensitive Notifications.
3.2 Info.plist
Section titled “3.2 Info.plist”В вашем файле Runner/Info.plist установите для ключа __PUSHWOOSH_DEVICE_API_TOKEN__ значение вашего Device API Token от Wavesend:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>3.3 Отслеживание доставки сообщений
Section titled “3.3 Отслеживание доставки сообщений”Вы должны добавить таргет Notification Service Extension в ваш проект. Это необходимо для точного отслеживания доставки и использования таких функций, как Rich Media на iOS.
Следуйте шагам из руководства по нативной интеграции, чтобы добавить таргет расширения и необходимый код Wavesend в него.
3.4 Установка зависимостей для проекта iOS React Native
Section titled “3.4 Установка зависимостей для проекта iOS React Native”Чтобы установить зависимости для проекта iOS React Native, перейдите в папку ios в терминале и выполните:
pod install --repo-update4. Нативная настройка для Android
Section titled “4. Нативная настройка для Android”4.1 Установка зависимостей
Section titled “4.1 Установка зависимостей”Убедитесь, что необходимые зависимости и плагины добавлены в ваши скрипты 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
Section titled “4.2 Добавление конфигурационного файла Firebase”Поместите файл google-services.json в папку android/app в директории вашего проекта.
4.3 Добавление метаданных Wavesend
Section titled “4.3 Добавление метаданных Wavesend”В вашем файле main/AndroidManifest.xml добавьте Device API Token от Wavesend внутри тега <application>:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в Панели управления Wavesend. Подробнее
5. Запуск проекта
Section titled “5. Запуск проекта”- Соберите и запустите проект.
- Перейдите в Панель управления Wavesend и отправьте push-уведомление.
- Вы должны увидеть уведомление в приложении.
Расширенная интеграция
Section titled “Расширенная интеграция”На этом этапе вы уже интегрировали SDK и можете отправлять и получать push-уведомления. Теперь давайте рассмотрим основную функциональность.
Слушатели событий push-уведомлений
Section titled “Слушатели событий push-уведомлений”В Wavesend SDK есть два слушателя событий, предназначенных для обработки push-уведомлений:
- событие
pushReceivedсрабатывает при получении push-уведомления - событие
pushOpenedсрабатывает, когда пользователь открывает уведомление
Вы должны настроить эти слушатели событий сразу после инициализации SDK при запуске приложения:
import {DeviceEventEmitter} from 'react-native'import Pushwoosh from 'pushwoosh-react-native-plugin';
class PushwooshNotificationHandler { setupPushListeners() {
DeviceEventEmitter.addListener('pushReceived', (e) => { console.warn("Push received: " + JSON.stringify(e)); });
DeviceEventEmitter.addListener('pushOpened', (e) => { console.warn("Push accepted: " + JSON.stringify(e)); });
}}Конфигурация пользователя
Section titled “Конфигурация пользователя”Фокусируясь на индивидуальном поведении и предпочтениях пользователей, вы можете доставлять персонализированный контент, что приведет к повышению удовлетворенности и лояльности пользователей.
import Pushwoosh from 'pushwoosh-react-native-plugin';
class Registration { afterUserLogin(user: User) {
// Set user ID Pushwoosh.setUserId(user.getId());
// Set user email Pushwoosh.setEmails(user.getEmailList());
// Setting additional user information as tags for Pushwoosh Pushwoosh.setTags({ "age": user.getAge(), "name": user.getName(), "last_login": user.getLastLoginDate() }); }}Tags — это пары «ключ-значение», присваиваемые пользователям или устройствам, что позволяет сегментировать их по таким атрибутам, как предпочтения или поведение, и отправлять таргетированные сообщения.
import Pushwoosh from 'pushwoosh-react-native-plugin';
class UpdateUser { afterUserUpdateProfile(user: 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() }); }}Events
Section titled “Events”Events — это конкретные действия пользователя или события в приложении, которые можно отслеживать для анализа поведения и запуска соответствующих сообщений или действий.
import Pushwoosh from 'pushwoosh-react-native-plugin';
class Registration {
// Track login event afterUserLogin(user: User) { Pushwoosh.postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
// Track purchase event afterUserPurchase(product: Product) { Pushwoosh.postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}Troubleshooting
Section titled “Troubleshooting”Если у вас возникнут какие-либо проблемы в процессе интеграции, пожалуйста, обратитесь к разделу поддержки и сообщества.