Настройка InboxKit с помощью Swift Package Manager
Доступно с iOS SDK 7.0.40.
InboxKit поставляется как отдельный библиотечный продукт в Swift-пакете Pushwoosh-XCFramework. Вам необходимо, чтобы основной SDK уже был интегрирован; если вы начинаете с нуля, сначала следуйте руководству по базовой интеграции.
Добавьте пакетный продукт InboxKit
Anchor link to-
Откройте ваш проект в Xcode и перейдите в настройки проекта → Package Dependencies, затем нажмите кнопку +.
-
Введите следующий URL пакета (Package URL):
https://github.com/Pushwoosh/Pushwoosh-XCFramework-
Установите правило зависимости (Dependency Rule) на Up to Next Major Version с последней стабильной версией, затем нажмите Add Package.
-
На экране выбора пакетов выберите как минимум следующие продукты и добавьте их в вашу основную цель приложения (main app target):
- PushwooshFramework (обязательно)
- PushwooshCore (обязательно)
- PushwooshBridge (обязательно)
- PushwooshInboxKit (новый модуль)

Добавьте четыре выделенных продукта в вашу основную цель приложения.
- Откройте вашу основную цель приложения и в разделе Frameworks, Libraries, and Embedded Content убедитесь, что
PushwooshInboxKit.xcframeworkуказан и встроен.
Вот и все — InboxKit теперь подключен вместе с основным SDK.
Отобразите список входящих
Anchor link toДобавьте контроллер входящих сообщений в любой навигационный поток. Конфигурации по умолчанию достаточно для получения работающего списка входящих с тремя стандартными типами ячеек:
import PushwooshInboxKit
let inboxVC = PushwooshInboxKitViewController()navigationController?.pushViewController(inboxVC, animated: true)@import PushwooshInboxKit;
PushwooshInboxKitViewController *inboxVC = [PushwooshInboxKitViewController new];[self.navigationController pushViewController:inboxVC animated:YES];Настройте список входящих
Anchor link toВ Swift контроллер настраивается через тип-значение PushwooshInboxKitAttributes. В Objective-C используйте сеттеры, совместимые с @objc, на контроллере — PushwooshInboxKitAttributes является структурой Swift и не переносится в Objective-C.
var attributes = PushwooshInboxKitAttributes()attributes.pullToRefreshEnabled = trueattributes.swipeToDeleteEnabled = trueattributes.pinningEnabled = trueattributes.style.unreadBadgeColor = .systemBlueattributes.style.titleFont = .systemFont(ofSize: 17, weight: .semibold)
let inboxVC = PushwooshInboxKitViewController(attributes: attributes)PushwooshInboxKitViewController *inboxVC = [PushwooshInboxKitViewController new];[inboxVC setBackgroundColor:[UIColor systemBackgroundColor]];[inboxVC setEmptyMessage:@"You have no messages yet"];Структура Style предоставляет доступ ко всем цветам, шрифтам, радиусам скругления углов и формату даты, используемым ячейками по умолчанию. Каждое значение по умолчанию является семантическим цветом Apple, поэтому список входящих автоматически реагирует на темный режим системы.

Ячейка с подписью и пользовательской темой, примененной через PushwooshInboxKitAttributes.Style.
Обработайте нажатия и обновления
Anchor link toЧтобы реагировать на действия пользователя и события обновления, соответствуйте протоколу PushwooshInboxKitDelegate. У каждого метода есть реализация по умолчанию, поэтому вы переопределяете только то, что вам нужно:
final class InboxCoordinator: NSObject, PushwooshInboxKitDelegate { func inboxKit(_ vc: PushwooshInboxKitViewController, didSelect message: PWInboxMessageProtocol) -> Bool { // Верните true, чтобы позволить SDK открыть URL сообщения или rich media. // Верните false, если вы полностью обработали нажатие (например, перенаправили на пользовательский экран). return true }
func inboxKit(_ vc: PushwooshInboxKitViewController, didRefreshWith messages: [PWInboxMessageProtocol], error: Error?) { // При необходимости покажите здесь свое собственное состояние пустого списка / ошибки. }}
inboxVC.delegate = inboxCoordinator