Перейти к основному содержимому

Настройка 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. Подтвердите загрузку:

Добавьте разрешение в 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

).build()

В этой переменной укажите следующие параметры:

  • apiUrl — URL-адрес конечной точки Altcraft API

  • resToken — ресурс-токен Altcraft

  • icon — идентификатор ресурса Drawable-изображения, которое будет использоваться как иконка уведомлений

  • usingService — boolean-значение для параметра, разрешающее или запрещающее использование foreground-сервисов во время выполнения подписки на push-уведомления и обновления токена подписок. Использование сервисов переднего плана гарантирует завершение выполнения функций в ситуациях, когда пользователь закрыл или свернул приложение до завершения процесса подписки или обновления. Работа сервисов переднего плана сопровождается показом уведомления для информирования пользователей о том, что работа программы выполняется в фоновом режиме.

Выполните функцию инициализации 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(). Для этого:

  1. В приложении создайте класс, расширяющий PushService():
class AppPushService : PushService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
}
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
}
}
  1. Добавьте в файл 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-уведомления после смены данных конфигурации при наличии существующих подписок.