Настройка InboxKit с помощью CocoaPods
Доступно с iOS SDK 7.0.40.
InboxKit поставляется как опциональный subspec для основного pod’а PushwooshXCFramework. Вам необходимо, чтобы основной SDK уже был интегрирован; если вы начинаете с нуля, сначала следуйте руководству по базовой интеграции.
Добавьте pod InboxKit
Anchor link to- Откройте ваш
Podfileи добавьте subspec InboxKit в target вашего приложения:
target 'MyApp' do use_frameworks!
pod 'PushwooshXCFramework' pod 'PushwooshXCFramework/PushwooshInboxKit'end- Выполните
pod installиз директории вашего проекта:
pod install- Откройте сгенерированный файл
.xcworkspace. Теперь 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 сообщения или richmedia. // Верните false, если вы полностью обработали нажатие (например, перенаправили на пользовательский экран). return true }
func inboxKit(_ vc: PushwooshInboxKitViewController, didRefreshWith messages: [PWInboxMessageProtocol], error: Error?) { // При необходимости отобразите здесь собственное состояние пустого списка или ошибки. }}
inboxVC.delegate = inboxCoordinatorSDK предоставляет массовые операции в виде @objc методов на контроллере, так что вы можете напрямую привязать их к UIBarButtonItem:
let markAll = UIBarButtonItem( image: UIImage(systemName: "checkmark.circle"), style: .plain, target: inboxVC, action: #selector(PushwooshInboxKitViewController.markAllAsRead))let clearRead = UIBarButtonItem( image: UIImage(systemName: "trash"), style: .plain, target: inboxVC, action: #selector(PushwooshInboxKitViewController.clearReadMessages))inboxVC.navigationItem.rightBarButtonItems = [clearRead, markAll]