SDK push-уведомлений для Defold (версия 2.0.0)
Условия корректной работы SDK
Ниже перечислены условия работы push-уведомлений.
- Подпись тестируемой сборки (например,
debug
) приложения должна совпадать с подписью сборки приложения, которая была загружена в консоль и прошла модерацию ранее (например,release
).
- Используется актуальная версия SDK.
- Приложение загружено в Консоль RuStore.
- Приложение прошло модерацию (публиковать приложение необязательно).
- На устройстве пользователя установлена актуальная версия RuStore.
- Приложение RuStore поддерживает функциональность push-уведомлений.
- Приложению RuStore разрешен доступ к работе в фоновом режиме.
- Пользователь авторизован в RuStore.
- Отпечаток подписи приложения должен совпадать с отпечатком, добавленным в Консоль RuStore.
Пример реализации
Ознакомьтесь с приложением-примером, чтобы узнать, как правильно интегрировать SDK push-уведомлений.
Подключение в проект
Установка пакета
Расширение extension-rustore-push
может быть установлено через подключение зависимости и локально. Локальная установка позволяет вносить изменения в исходный код проекта и редактировать манифест приложения для тонкой настройки SDK.
Установка через зависимости
Правила подключения внешних зависимостей описаны в руководстве пользователя Defold на странице Library.
- Откройте настройки вашего проекта на вкладке Project (game.project > Project);
- Добавьте в поле
Dependencies
ссылку на пакет с расширением https://gitflic.ru/project/rustore/defold-extension-rustore-push/file/downloadAll?branch=master.
Рекомендуется использовать ссылку на определённый релиз расширения.
Локальная установка (с возможностью изменения кода)
- Скопируйте проект плагина и приложения-примера из официального репозитория RuStore на GitFlic;
- Скопируйте папку
extension-rustore-push
в корень вашего проекта; - Откройте настройки вашего проекта на вкладке
Library
(game.project
> Library); - В поле
Include Dirs
укажите имя папки пакетаextension-rustore-push
, несколько имен разделяются пробелами.
Редактирование манифеста приложения
Плагин extension-rustore-push
внесет изменения в манифест вашего приложения.
Изменить это поведение можно в локальной копии extension-rustore-push
в файле манифеста extension-rustore-push/manifests/android/AndroidManifest.xml
.
Плагин добавит к манифесту вашего приложения службу RustoreMessagingService
.
<service
android:name="ru.rustore.defoldpush.RustoreMessagingService"
android:exported="true"
tools:ignore="ExportedService">
<intent-filter>
<action android:name="ru.rustore.sdk.pushclient.MESSAGING_EVENT" />
</intent-filter>
</service>
Для задания параметров инициализации push-клиента плагин добавит к манифесту вашего приложения параметры project_id
и params_class
через тэг meta-data
. Дополнительная информация о project_id
и params_class
находится в разделе Инициализация.
<meta-data
android:name="ru.rustore.sdk.pushclient.project_id"
android:value="{{android.rustore_project_id}}" />
<meta-data
android:name="ru.rustore.sdk.pushclient.params_class"
android:value="ru.rustore.defoldpush.RuStorePushClientParams" />
Если нужно изменить иконку или цвет стандартной нотификации, добавьте следующий код.
<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-уведомлений вы должны создать канал самостоятельно.
Прием пушей из консоли RuStore
Чтобы иметь возможность получать push-сообщения с объектом notification
, вы должны сделать PushDispatchActivity
основным активити. Для этого добавьте следующую запись в манифест вашего проекта.
<activity android:name="ru.rustore.defoldpush.PushDispatchActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Одновременно, вы должны удалить следующий <intent-filter>
из активити com.dynamo.android.DefoldActivity
.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Для выполнения этих действий вы можете воспользоваться примером ExtendedAndroidManifest.xml
из папки /extension-rustore-push/manifests/android/
. Откройте game.project
вашего проекта и укажите путь до измененного файла манифеста в поле Manifest
раздела Android
.
/extension-rustore-push/manifests/android/ExtendedAndroidManifest.xml