Конфигурация SDK
Предварительные условия
- SDK провайдеров push-уведомлений интегрированы в проект приложения (см. инструкции по интеграции push-провайдеров).
- Выполнена загрузка пакета npm с помощью одной из команд:
yarn add altcraft-react-native-sdk
# or
npm i altcraft-react-native-sdk
Подготовка приложения
Передача JWT-токена в SDK (опционально)
Реализация JWT требуется, если используется JWT-аутентификация API-запросов. JWT подтверждает, что пользовательские идентификаторы аутентифицированы приложением.
Реализация JWT-аутентификации обязательна, если используется тип матчинга отличный от push-данных из подписки (например, идентификатор пользователя — email или телефон).
Настройка JWT осуществляется аналогично нативным SDK платформ (Android/iOS).
Подготовка к работе с push-провайдерами
Для iOS подготовка к работе с push-провайдерами производится нативно. Подробная инструкция описана в этом разделе статьи по настройке mSDK.
Инициализация SDK
Параметры инициализации
Для передачи параметров конфигурации используется объект AltcraftConfig:
export type AltcraftConfig = {
apiUrl: string;
rToken?: string | null;
appInfo?: {
appID: string;
appIID: string;
appVer: string;
} | null;
providerPriorityList?: string[] | null;
enableLogging?: boolean | null;
// -------- ANDROID-ONLY --------
android_icon?: number | null;
android_usingService?: boolean | null;
android_serviceMessage?: string | null;
android_pushReceiverModules?: string[] | null;
android_pushChannelName?: string | null;
android_pushChannelDescription?: string | null;
};
Описание параметров:
apiUrl string
Обязательный: Да
Описание: URL конечной точки Altcraft API
rToken string | null
По умолчанию: null
Обязательный: Нет
Описание: Ролевой токен Altcraft (идентифицирует ресурс/БД/аккаунт). Используется, если единственный тип матчинга — push-токен устройства.
appInfo { appID: string; appIID: string; appVer: string } | null
По умолчанию: null
Обязательный: Нет
Описание: Базовые метаданные приложения.
enableLogging boolean | null
По умолчанию: null
Обязательный: Нет
Описание: Включает/отключает ведение логов.
providerPriorityList string[] | null
По умолчанию: null
Обязательный: Нет
Описание: Список приоритетов провайдеров (по индексу: 0 — самый приоритетный).
Пример использования:
Android
providerPriorityList: ['android-firebase', 'android-huawei', 'android-rustore']
iOS
providerPriorityList: ['ios-apns', 'ios-firebase', 'ios-huawei']
android_icon number | null (только Android)
По умолчанию: null
Обязательный: Нет
Описание: ID ресурса drawable, используемого как иконка уведомлений
android_pushReceiverModules string[] | null (только Android)
По умолчанию: null
Обязательный: Нет
Описание: Список имён пакетов, в которых находятся реализации нативного AltcraftPushReceiver.
android_pushChannelName string | null (только Android)
По умолчанию: null
Обязательный: Нет
Описание: Базовое имя канала push-уведомлений (видно в настройках Android).
android_pushChannelDescription string | null (только Android)
По умолчанию: null
Обязательный: Нет
Описание: Описание push-канала (видно в настройках Android).
android_usingService boolean | null (только Android)
По умолчанию: null
Обязательный: Нет
Описание: Включает использование foreground-сервисов при оформлении подписки и обновлении push-токена.
android_serviceMessage string | null (только Android)
По умолчанию: null
Обязательный: Нет
Описание: Текст уведомления foreground-сервисов/фоновых задач. Если null, используется значение по умолчанию на стороне SDK.
Выполнение инициализации
Для инициализации SDK используйте функцию initialize(config):
import AltcraftSDK from 'altcraft-react-native-sdk';
await AltcraftSDK.initialize({
apiUrl: 'https://pxl-example.altcraft.com',
// optional
rToken: null,
enableLogging: true,
providerPriorityList: ['android-firebase', 'android-huawei', 'android-rustore'],
// android-only (optional)
android_icon: null,
android_usingService: null,
android_serviceMessage: null,
android_pushReceiverModules: null,
android_pushChannelName: null,
android_pushChannelDescription: null,
});