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

Настройка InboxKit с помощью Swift Package Manager

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

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

Добавьте пакетный продукт InboxKit

Anchor link to
  1. Откройте ваш проект в Xcode и перейдите в настройки проекта → Package Dependencies, затем нажмите кнопку +.

  2. Введите следующий URL пакета (Package URL):

Terminal window
https://github.com/Pushwoosh/Pushwoosh-XCFramework
  1. Установите правило зависимости (Dependency Rule) на Up to Next Major Version с последней стабильной версией, затем нажмите Add Package.

  2. На экране выбора пакетов выберите как минимум следующие продукты и добавьте их в вашу основную цель приложения (main app target):

  • PushwooshFramework (обязательно)
  • PushwooshCore (обязательно)
  • PushwooshBridge (обязательно)
  • PushwooshInboxKit (новый модуль)
Диалоговое окно Xcode Choose Package Products с добавленными PushwooshBridge, PushwooshCore, PushwooshFramework и PushwooshInboxKit в цель MyApp

Добавьте четыре выделенных продукта в вашу основную цель приложения.

  1. Откройте вашу основную цель приложения и в разделе Frameworks, Libraries, and Embedded Content убедитесь, что PushwooshInboxKit.xcframework указан и встроен.

Вот и все — 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 сообщения или rich media.
// Верните false, если вы полностью обработали нажатие (например, перенаправили на пользовательский экран).
return true
}
func inboxKit(_ vc: PushwooshInboxKitViewController,
didRefreshWith messages: [PWInboxMessageProtocol],
error: Error?) {
// При необходимости покажите здесь свое собственное состояние пустого списка / ошибки.
}
}
inboxVC.delegate = inboxCoordinator

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

Anchor link to