Быстрый старт
В статье приведен пример быстрой интеграции Altcraft mSDK с Apple Push Notification System (APNS) и Firebase Cloud Messaging (FCM). После выполнения указанных шагов ваше приложение сможет получать push-уведомления Altcraft.
Для использования Huawei Mobile Services необходимо добавить соответствующие SDK в проект и реализовать их интерфейс, используя тот же подход, что показан для APNS и FCM.
Шаг 0. Предварительные условия
- Получен доступ к APNS на сайте;
- Приложение настроено в проекте Firebase,
GoogleServiceInfo.plistзагружен; - Все необходимые сущности (ресурс, рассылка, шаблон, база профилей) заранее созданы в платформе Altcraft.
Шаг 1. Подключение Altcraft mSDK к приложению
mSDK разбит на модули. Модуль активизируется добавлением его зависимости в проект — отдельная регистрация не требуется: каждый модуль регистрируется автоматически при инициализации SDK.
Для push-сценария необходимы два модуля:
Core— базовый модуль (инициализация, аутентификация, повтор неудачных запросов);Push— push-уведомления.
Добавьте пакеты из репозиториев с помощью Swift Package Manager:
- Репозиторий Altcraft SDK — выберите продуктовые модули AltcraftCore и AltcraftPush (при использовании Notification Service Extension добавьте AltcraftNSE);
- Репозиторий Firebase.
Шаг 2. Добавление GoogleServiceInfo в приложение
Добавьте GoogleServiceInfo.plist в папку вашего приложения:
Шаг 3. Подготовка приложения
Настройте следующие параметры таргета приложения:
- General:
- Проверьте, что библиотека Altcraft добавлена в Frameworks, Libraries, and Embedded Content таргета приложения:
- Проверьте, что библиотека FirebaseMessaging добавлена в Frameworks, Libraries, and Embedded Content таргета приложения:
-
Signing & Capabilities:
- PushNotifications;
- AppGroups — укажите идентификатор для группы (добавление идентификатора App Group необходимо для обмена информацией с Notification Service Extension);
Background Modes— выберите Background fetch, Remote notification, Background processing.
-
Info:
- Добавьте ключи и значения:
| Ключ | Тип | Значение |
|---|---|---|
| Permitted background task scheduler identifiers | Array | "lib.Altcraft.bgTask.systemControl" |
| FirebaseAppDelegateProxyEnabled | Boolean | NO |
Первый ключ необходим для регистрации bgTask-задачи, которая будет выполнять повтор неудачных запросов к серверу в background-режиме. Второй ключ — для отключения автоматической подмены (method swizzling) методов AppDelegate, которую Firebase Messaging выполняет по умолчанию.
Шаг 4. Реализация JWTInterface
Выполните реализацию протокола SDK, предназначенного для предоставления JWT-токена. Для этого создайте класс, реализующий JWTInterface, и переопределите getToken():
import Altcraft
class JWTProvider: JWTInterface {
func getToken() -> String? {
//ваш код, возвращающий JWT
}
}
getToken() — синхронная функция. Поток выполнения SDK будет приостановлен до получения JWT. Рекомендуется, чтобы getToken() возвращал значение немедленно — из кэша (in-memory, UserDefaults или Keychain) — это ускорит выполнение запросов. Желательно подготовить актуальный JWT как можно раньше (на старте приложения) и сохранить его в кэш, чтобы при обращении SDK токен был доступен без задержек. При отсутствии значения допустимо вернуть nil.