SDK push-уведомлений для Unity (версия 0.6.1)
Ниже перечислены условия работы push-уведомлений.
- Подпись и package name различных типов сборок вашего приложения (debug, release и т.д.) могут отличаться друг от друга. В таком случае вы должны создать в разделе Push-уведомления > Проекты из Консоль RuStore проект под каждый тип сборки..
- Используется актуальная версия SDK.
- Загружены данные о приложении в разделе Push-уведомления > Проекты из Консоль RuStore.
На устройстве пользователя установлено приложение-дистрибьютор (RuStore и т.д.)
Для проверки того, что приложение-дистрибьютор установлено на устройстве пользователя, используйте методRuStorePushClient.checkPushAvailability
..- Если установлено приложение RuStore, то ему разрешен доступ к работе в фоновом режиме. Без этого разрешения push-уведомления будут приходить, но со значительной задержкой.
- Отпечаток подписи приложения, установленного на девайсе, совпадает с отпечатком подписи приложения, которое добавлено в разделе Push-уведомления > Проекты из Консоль RuStore.
Пример реализации
Ознакомьтесь с приложением-примером, чтобы узнать, как правильно интегрировать SDK push-уведомлений.
Подключение в проект
-
Скачайте RuStore Push SDK.
-
Импортируйте 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 Консоль. Чтобы получить его, на странице приложения перейдите в раздел Push-уведомления > Проекты и скопируйте значение в поле ID проекта.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
.