Базовое руководство по интеграции React Native SDK
В этом разделе содержится информация о том, как интегрировать Pushwoosh React Native SDK в ваше приложение.
Предварительные требования
Anchor link toДля интеграции Pushwoosh React Native SDK в ваше приложение вам понадобится следующее:
Шаги интеграции
Anchor link to1. Добавьте зависимость Pushwoosh React Native SDK
Anchor link toДобавьте зависимость Pushwoosh React Native SDK в ваш проект:
npm install pushwoosh-react-native-plugin --save
2. Инициализация React Native SDK
Anchor link toВ корневом компоненте вашего файла index.js
:
- Импортируйте
pushwoosh-react-native-plugin
. - Инициализируйте Pushwoosh 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__
— это код приложения из Панели управления Pushwoosh.__YOUR_FCM_SENDER_ID__
— это номер проекта Firebase из консоли Firebase.
3. Нативная настройка для iOS
Anchor link to3.1 Возможности (Capabilities)
Anchor link toЧтобы включить push-уведомления в вашем проекте, необходимо добавить определенные возможности.
В разделе Signing & Capabilities добавьте следующие возможности:
Push Notifications
Background 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__
на API-токен устройства Pushwoosh:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>
3.3 Отслеживание доставки сообщений
Anchor link toВы должны добавить в свой проект цель расширения службы уведомлений (Notification Service Extension). Это необходимо для точного отслеживания доставки и таких функций, как Rich Media на iOS.
Следуйте шагам из нативного руководства, чтобы добавить цель расширения и необходимый код Pushwoosh в него.
3.4 Установка зависимостей для проекта iOS React Native
Anchor link toДля установки зависимостей для проекта iOS React Native перейдите в папку ios
в терминале и выполните:
pod install --repo-update
4. Нативная настройка для Android
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
добавьте API-токен устройства Pushwoosh внутри тега <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 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)); });
}}
Конфигурация пользователя
Anchor link toСосредоточившись на поведении и предпочтениях отдельных пользователей, вы можете доставлять персонализированный контент, что приведет к повышению удовлетворенности и лояльности пользователей.
import Pushwoosh from 'pushwoosh-react-native-plugin';
class Registration { afterUserLogin(user: User) {
// Установить ID пользователя Pushwoosh.setUserId(user.getId());
// Установить email пользователя Pushwoosh.setEmails(user.getEmailList());
// Установка дополнительной информации о пользователе в виде тегов для Pushwoosh Pushwoosh.setTags({ "age": user.getAge(), "name": user.getName(), "last_login": user.getLastLoginDate() }); }}
Теги
Anchor link toТеги — это пары “ключ-значение”, присваиваемые пользователям или устройствам, что позволяет сегментировать аудиторию на основе таких атрибутов, как предпочтения или поведение, и отправлять таргетированные сообщения.
import Pushwoosh from 'pushwoosh-react-native-plugin';
class UpdateUser { afterUserUpdateProfile(user: User) {
// Установить список любимых категорий Pushwoosh.setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// Установить платежную информацию Pushwoosh.setTags({ "is_subscribed": user.isSubscribed(), "payment_status": user.getPaymentStatus(), "billing_address": user.getBillingAddress() }); }}
События
Anchor link toСобытия — это конкретные действия или происшествия пользователя в приложении, которые можно отслеживать для анализа поведения и запуска соответствующих сообщений или действий.
import Pushwoosh from 'pushwoosh-react-native-plugin';
class Registration {
// Отследить событие входа afterUserLogin(user: User) { Pushwoosh.postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
// Отследить событие покупки afterUserPurchase(product: Product) { Pushwoosh.postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}
Устранение неполадок
Anchor link toЕсли у вас возникнут какие-либо проблемы в процессе интеграции, пожалуйста, обратитесь к разделу поддержки и сообщества.