Конфигурация SDK
Предварительные условия
- SDK провайдеров push-уведомлений интегрированы в проект приложения (см. инструкции по интеграции push-провайдеров).
- Выполнена загрузка пакета Altcraft с помощью Swift Package Manager.
Подготовка приложения
Настройка таргета
Настройте следующие параметры таргета приложения:
- General
При использовании Swift Package Manager проверьте, что библиотека Altcraft добавлена в Frameworks, Libraries, and Embedded Content таргета приложения.
- Signing & Capabilities
Добавьте следующие Capabilities:
- PushNotifications;
- AppGroups;
- Background Modes (Background fetch, Background processing).
- Info
Добавьте key Permitted background task scheduler identifiers и value "lib.Altcraft.bgTask.systemControl". Это необходимо для регистрации bgTask-задачи, которая будет выполнять повтор неудачных запросов к серверу в background-режиме.
- Опционально:
При использовании Firebase Cloud Messaging добавьте ключ FirebaseAppDelegateProxyEnabled (Boolean) с значением NO. Это отключит автоматическую подмену (method swizzling) методов AppDelegate, которую Firebase Messaging выполняет по умолчанию.
Настройка AppDelegate
Далее необходимо выполнить в AppDelegate.application(_:didFinishLaunchingWithOptions:) следующие действия:
- передать идентификатор
AppGroupв SDK - зарегистрировать
BGTask(фоновые задачи SDK) - (опционально) инициализировать функции
UNUserNotificationCenterна стороне SDK
Установка идентификатора AppGroup
Добавление идентификатора AppGroup необходимо для обмена информацией с Notification Service Extension и требуется для корректной работы SDK. Выполняется с помощью функции setAppGroup():
AltcraftSDK.shared.setAppGroup(groupName: String)
Регистрация BGTask
Регистрация фоновых задач SDK необходима для повторной отправки неуспешных запросов в фоновом режиме. Выпоняется с помощью функции registerBackgroundTask():
AltcraftSDK.shared.backgroundTasks.registerBackgroundTask()
Инициализация функций UNUserNotificationCenter (опционально)
SDK содержит класс NotificationManager который выполняет следующие задачи:
- настраивает
UNUserNotificationCenterи запрашивает разрешение на уведомление (alert/sound/badge); - обеспечивает вызов
UIApplication.registerForRemoteNotifications()и гарантирует корректную регистрацию в APNs; - отображает уведомления в foreground;
- обрабатывает клики по уведомлениям и кнопкам — выполняет переход на указанный URL или открывает приложение;
- регистрирует push-событие открытия ("open").
Для использования класса SDK NotificationManager вызовите функцию в AppDelegate.application(_:didFinishLaunchingWithOptions:):
func registerForPushNotifications(for application: UIApplication, completion: ((_ granted: Bool, _ error: Error?) -> Void)? = nil): Void
Данная функция назначает делегата, запрашивает разрешение у пользователя и регистрирует приложение для получения push-уведомлений на стороне SDK.
Пример корректного заполнения AppDelegate.application
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let appGroup = "group.your.id"
//ID App Group Setup
AltcraftSDK.shared.setAppGroup(groupName: appGroup)
//Backgroung SDK task registration
AltcraftSDK.shared.backgroundTasks.registerBackgroundTask()
//SDK UNUserNotificationCenter functions initialization
AltcraftSDK.shared.notificationManager.registerForPushNotifications(for: application)
//Other functions
return true
}
//Other functions AppDelegate
}