Общая информация
Для работы пуш-уведомлений необходимо соблюдение следующих условий:
- На устройстве пользователя должен быть установлен RuStore.
- RuStore должен поддерживать функциональность пуш-уведомлений.
- Приложению RuStore разрешён доступ к работе в фоновом режиме.
- Пользователь должен быть авторизован в RuStore.
- Отпечаток подписи приложения должен совпадать с отпечатком, добавленным в RuStore Консоль.
Подключение в проект
Для подключения необходимо скачать RuStore Push SDK и импортировать его в проект (Assets → Import Package → Custom Package). Зависимости подключаются автоматически с помощью External Dependency Manager (включен в SDK).
Minimum API level должен быть установлен не ниже 24. Минификация приложения (ProGuard/R8) в данный момент не поддерживается, необходимо её отключить в настройках проекта (File → Build Settings → Player Settings → Publishing Settings → Minify).
Редактирование манифеста приложения
Вы должны объявить службу RuStoreUnityMessagingService:
< service android:name = "ru.rustore.unitysdk.pushclient.RuStoreUnityMessagingService" android:exported = "true" tools:ignore = "ExportedService" > < intent-filter > < action android:name = "ru.rustore.sdk.pushclient.MESSAGING_EVENT" /> </ intent-filter > </ service > |
Вы можете добавить следующие метаданные, если вы хотите изменить иконку или цвет стандартной нотификации:
< meta-data android:name = "ru.rustore.sdk.pushclient.default_notification_icon" android:resource = "@drawable/ic_baseline_android_24" /> < meta-data android:name = "ru.rustore.sdk.pushclient.default_notification_color" android:resource = "@color/your_favorite_color" /> |
Вы можете добавить следующие метаданные для переопределения канала уведомлений:
< meta-data android:name = "ru.rustore.sdk.pushclient.default_notification_channel_id" android:value = "@string/pushes_notification_channel_id" /> |
При добавлении своего канала для push-уведомлений вы должны создать канал самостоятельно.
Инициализация
Для инициализации необходимо переопределить в проекте класс Application. Необходимый исходный код уже содержится в файле Assets/RuStoreSDK/PushClient/Android/RuStoreUnityApplication.java:
package ru.rustore.unitysdk; import android.app.Application; import ru.rustore.unitysdk.pushclient.RuStoreUnityPushClient; public class RuStoreUnityApplication extends Application { @Override public void onCreate() { super .onCreate(); RuStoreUnityPushClient.init( application = this ); } } |
- application — экземпляр класса Application.
Этот класс нужно указать AndroidManifest.xml проекта:
< application android:name = "ru.rustore.unitysdk.RuStoreUnityApplication" > |
Параметры, с которыми будет инициализироваться библиотека, настраиваются в редакторе Unity. Выберите в меню редактора пункт Window → RuStoreSDK → Settings → Push Client:
- VKPNS Project Id — идентификатор вашего проекта в консоли разработчика RuStore;
- Allow Native Error Handling — разрешить обработку ошибок в нативном SDK. Обработка ошибок
Перед вызовом методов библиотеки из C# кода необходимо вызвать её инициализацию:
var сonfig = new RuStorePushClientConfig() { allowNativeErrorHandling = true , messagingServiceListener = pushServiceListener, logListener = pushLogListener }; RuStorePushClient.Instance.Init(сonfig); |
- allowNativeErrorHandling — разрешить обработку ошибок в нативном SDK; Обработка ошибок
- messagingServiceListener — объект класса, реализующего интерфейс IMessagingServiceListener;
- logListener — объект класса, реализующего интерфейс ILogListener.