Перейти к содержанию

Настройка InboxKit с помощью CocoaPods

Доступно с iOS SDK 7.0.40.

InboxKit поставляется как опциональный subspec для основного pod’а PushwooshXCFramework. Вам необходимо, чтобы основной SDK уже был интегрирован; если вы начинаете с нуля, сначала следуйте руководству по базовой интеграции.

Добавьте pod InboxKit

Anchor link to
  1. Откройте ваш Podfile и добавьте subspec InboxKit в target вашего приложения:
target 'MyApp' do
use_frameworks!
pod 'PushwooshXCFramework'
pod 'PushwooshXCFramework/PushwooshInboxKit'
end
  1. Выполните pod install из директории вашего проекта:
Terminal window
pod install
  1. Откройте сгенерированный файл .xcworkspace. Теперь InboxKit подключен вместе с основным SDK.

Отобразите папку «Входящие»

Anchor link to

Добавьте контроллер входящих сообщений в любой навигационный поток. Конфигурации по умолчанию достаточно, чтобы получить работающую папку «Входящие» с тремя стандартными типами ячеек:

import PushwooshInboxKit
let inboxVC = PushwooshInboxKitViewController()
navigationController?.pushViewController(inboxVC, animated: true)

Настройте папку «Входящие»

Anchor link to

В Swift настройте контроллер через тип значения PushwooshInboxKitAttributes. В Objective-C используйте @objc-совместимые сеттеры на контроллере — PushwooshInboxKitAttributes является структурой Swift и не имеет моста в Objective-C.

var attributes = PushwooshInboxKitAttributes()
attributes.pullToRefreshEnabled = true
attributes.swipeToDeleteEnabled = true
attributes.pinningEnabled = true
attributes.style.unreadBadgeColor = .systemBlue
attributes.style.titleFont = .systemFont(ofSize: 17, weight: .semibold)
let inboxVC = PushwooshInboxKitViewController(attributes: attributes)

Структура Style предоставляет доступ ко всем цветам, шрифтам, радиусам скругления углов и формату даты, используемым ячейками по умолчанию. Каждое значение по умолчанию является семантическим цветом Apple, поэтому папка «Входящие» автоматически реагирует на темный режим системы.

Кастомизированная лента InboxKit с примененными фирменными цветами к заголовку и индикатору непрочитанных сообщений

Ячейка с подписью и примененной пользовательской темой через 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 = inboxCoordinator

SDK предоставляет массовые операции в виде @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]

Следующие шаги

Anchor link to