Настройка mSDK для Android через Firebase
Подготовка приложения
Выполните подключение Firebase Cloud Messaging
Если у вас еще не создан проект в Firebase, создайте его. Далее в главном меню Android Studio выберите на панели в верхней части экрана пункт Tools — Firebase. В открывшемся боковом меню выберите Cloud Messaging — Set up Firebase Cloud Messaging:
Нажмите кнопку Connect to Firebase:
После нажатия вы будете перенаправлены на страницу выбора аккаунта Google, а затем на страницу проекта Firebase. На этой странице появится надпись Connect. Нажмите на данную кнопку:
Загрузка google-service.json в папку проекта "app" должна произойти автоматически. Если этого не произошло — самостоятельно выполните загрузку google-service.json с сайта Firebase и добавьте файл в папку:
В Android Studio в панели Firebase выберите Add FCM to your app:
После нажатия на данную кнопку откроется окно подтверждения загрузки зависимостей Firebase Cloud Messaging. Подтвердите загрузку:
Проверьте правильность добавления зависимостей и плагинов FCM
- build.gradle уровня проекта должен содержать зависимость google.services:
buildscript {
dependencies {
classpath(libs.google.services)
}
}
- файл build.gradle уровня приложения должен содержать плагин com.google.gms.google-services:
plugins {
id("com.google.gms.google-services")
}
- также build.gradle уровня приложения долджен содержать зависимость firebase.messaging в блоке dependencies:
dependencies {
implementation(libs.firebase.messaging)
}
Добавьте разрешение в AndroidManifest приложения
Для того чтобы добавить разрешения в приложение, вставьте в файл AndroidManifest следующий код:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
Интеграция SDK
Добавьте папку библиотеки altcraft-sdk в папку проекта в Android Studio на уровень проекта. В файле setting.gradle.kts добавьте модуль библиот еки с помощью команды:
include(":altcraft-sdk")
В файл build.gradle.kts модуля app (в блок dependencies) добавьте зависимость библиотеки с помощью команды:
implementation(project(":altcraft-sdk"))
Затем выполните синхронизацию, нажав на соответствующую кнопку в верхней части экрана:
Инициализация SDK
Cоздайте переменную конфигурации
Добавьте следующую переменную:
val config = AltcraftConfiguration.Builder(
apiUrl: String,
resToken: String,
icon: Int,
usingService: Boolean,
serviceMessage: String? = null
).build()
В этой переменной укажите следующие параметры:
-
apiUrl — URL-адрес конечной точки Altcraft API
-
resToken — ресурс-токен Altcraft
-
icon — идентификатор ресурса Drawable-изображения, которое будет использоваться как иконка уведомлений
-
usingService — boolean-значение для параметра, разрешающее или запрещающее использование foreground-сервисов во время выполнения подписки на push-уведомления и обновления токена подписок. Использование сервисов переднего плана гарантирует завершение выполнения функций в ситуациях, когда пользователь закрыл или свернул приложение до завершения процесса подписки или обновления. Работа сервисов переднего плана сопровождается показом уведомления для информирования пользователей о том, что работа программы выполняется в фоновом режиме.
-
serviceMessage — string-значение, используемое для указания текста сообщения, который будет отображаться в уведомлении при включении служб переднего плана. Значение по умолчанию — "null". Если использование сервисов переднего плана разрешено, а значение serviceMessage равно "null", то в уведомлении сервиса будет указано "background process".
Выполните функцию инициализации SDK
Выполните следующую функцию:
AltcraftSDK.init(context: applicationContext, configuration: config)
со следующими параметрами:
-
context — контекст приложения
-
configuration — переменная конфигурации.
Добавление конфигурации и инициализацию SDK рекомендуется производить в классе расширяющем Application() или в главном Activity приложения.
Подписка на push-уведомления Altcraft
Начиная с API 33 для показа уведомлений необходимо получить разрешение от пользователя. До API 33 добавление разрешения в манифест-файл автоматически разрешает показ. Функция подписки на уведомления Altcraft будет выполнена только при условии предоставленного разрешения на показ уведомлений, наличия сохраненной конфигурации SDK и завершенного процесса инициализации.
После получения разрешения на показ уведомлений и инициализации SDK выполните:
AltcraftSDK.pushModule.subscribe(context: Context)
, где context — контекст приложения
Обработка и получение уведомлений в приложении
Для обработки и получения значений данных уведомления в приложении необходимо переопределить класс PushService библиотеки, расширяющий FirebaseMessagingService(). Для этого:
- В приложении создайте класс, расширяющий PushService():
class AppPushService : PushService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
}
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
}
}
- Добавьте в файл AndroidManifest приложения код сервиса в раздел application:
<service
android:name="имя класса сервиса"
android:directBootAware="false"
android:enabled="true"
android:exported="false"
android:usesCleartextTraffic="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
После получения уведомления в функции onMessageReceived будет доступен объект message класса RemoteMessage, из которого можно получить значения message.data[«key»]
, где «key» — необходимый ключ.
Вызов super.onMessageReceived(message)
внутри функции onMessageReceived (message: RemoteMessage) позволяет отображать push-уведомление c использованием builder-метода SDK. Исключение вызова super.onMessageReceive(message)
отменяет показ уведомления с использованием builder-метода библиотеки, делегируя данную функцию разработчикам приложения.
Получение событий SDK в приложении
События SDK представляют собой объекты string, содержащие код события. События добавляются в прослушиваемый список. Для доступа к списку событий в приложении используйте следующий код:
AltcraftSDK.eventsList.addListener { eventsList ->
// eventsList - список, содержащий события SDK.
}
При изменении списка будет срабатывать замыкание функции addListener
, а eventsList
будет обновлен.
Расшифровка кодов представлена в отдельном файле. (по хорошему дать ссылку на файл или его название)
Очистка данных SDK
Очистка данных SDK включает в себя:
- Очистку объектов базы данных SDK
- Очистку данных
SharedPreferences
SDK - Завершение существующих задач
WorkManager
SDK.
Для очистки данных SDK выполните функцию clearCache
объекта Altcraft:
AltcraftSDK.clearCache(context: applicationContext) {}
, где context — контекст приложения.
Замыкание clearCache
срабатывает после выполнения функции.
Очистка данных требуется для подписки на push-уведом ления после смены данных конфигурации при наличии существующих подписок.