Быстрый старт
В статье приведен пример быстрой интеграции Altcraft mSDK с Firebase Cloud Messaging (FCM). После выполнения указанных шагов ваше приложение сможет получать push-уведомления Altcraft.
Для использования Huawei Mobile Services или RuStore необходимо добавить соответствующие SDK в проект и реализовать их интерфейсы, используя тот же подход, что показан для Firebase.
Шаг 0. Предварительные условия
- SDK push-провайдеров интегрированы в проект приложения (см. инструкции по интеграции push провайдеров);
- В приложение добавлен класс, расширяющий
Application(); - Все необходимые сущности (ресурс, кампания, шаблон, база профилей) заранее созданы в платформе Altcraft;
- Для отправки push-уведомлений на устройствах с Android 13 (Tiramisu) требуется явное разрешение пользователя.
Шаг 1. Интеграция Altcraft mSDK в приложение
- Добавьте зависимость библиотеки в файл
build.gradle.ktsуровня приложения (app level).
dependencies {
implementation("com.altcraft:android-sdk:1.0.1")
}
- Выполните синхронизацию изменений Gradle.
Шаг 2. Реализация JWTInterface
Выполните реализацию интерфейса SDK, предназначенного для предоставления JWT-токена.
В модуле приложения создайте класс, реализующий JWTInterface, и переопределите getJWT():
import com.altcraft.sdk.interfaces.JWTInterface
class JWTProvider(private val context: Context /** добавьте свойство context если это необходимо*/) : JWTInterface {
override fun getJWT(): String?{
// в аш код, возвращающий актуальный JWT-токен
}
}
Обратите внимание
getJWT()— синхронная функция. Поток выполнения SDK будет приостановлен до получения JWT;- Рекомендуется, чтобы
getJWT()возвращал значение немедленно из кэша (in-memory,SharedPreferencesилиEncryptedSharedPreferences). Это ускорит выполнение запросов; - Желательно подготовить актуальный JWT как можно раньше, например, на старте приложения, и сохранить его в кэш, чтобы при обращении SDK токен был доступен без задержек. При отсутствии значения допустимо вернуть
null.
Пример реализации с использованием suspend-функции получения токена
import android.content.Context
import com.altcraft.sdk.interfaces.JWTInterface
import kotlinx.coroutines.runBlocking
class JWTProvider(private val context: Context /** добавьте свойство context если это необходимо*/) : JWTInterface {
private suspend fun fetchJwt(context: Context): String? {
// ваш код, возвращающий актуальный JWT-токен
return jwt
}
override fun getJWT(): String? = runBlocking {
fetchJwt(context)
}
}