Configurar o InboxKit com CocoaPods
Disponível desde o SDK do iOS 7.0.40.
O InboxKit é fornecido como um subspec opcional do pod guarda-chuva PushwooshXCFramework. Você precisa que o SDK principal já esteja integrado; se estiver começando do zero, siga primeiro o guia de integração básica.
Adicionar o pod do InboxKit
Anchor link to- Abra seu
Podfilee adicione o subspec do InboxKit ao seu alvo de aplicativo:
target 'MyApp' do use_frameworks!
pod 'PushwooshXCFramework' pod 'PushwooshXCFramework/PushwooshInboxKit'end- Execute
pod installa partir do diretório do seu projeto:
pod install- Abra o arquivo
.xcworkspacegerado. O InboxKit agora está vinculado junto com o SDK principal.
Mostrar a caixa de entrada
Anchor link toAdicione o controlador da caixa de entrada a qualquer fluxo de navegação. A configuração padrão é suficiente para obter uma caixa de entrada funcional com os três tipos de célula padrão:
import PushwooshInboxKit
let inboxVC = PushwooshInboxKitViewController()navigationController?.pushViewController(inboxVC, animated: true)@import PushwooshInboxKit;
PushwooshInboxKitViewController *inboxVC = [PushwooshInboxKitViewController new];[self.navigationController pushViewController:inboxVC animated:YES];Personalizar a caixa de entrada
Anchor link toEm Swift, configure o controlador através do tipo de valor PushwooshInboxKitAttributes. Em Objective-C, use os setters amigáveis para @objc no controlador — PushwooshInboxKitAttributes é uma struct Swift e não possui ponte para 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"];A struct Style expõe todas as cores, fontes, raios de canto e o formatador de data usados pelas células padrão. Cada valor é uma cor semântica da Apple por padrão, então a caixa de entrada reage ao modo escuro do sistema automaticamente.

Célula legendada com um tema personalizado aplicado através de PushwooshInboxKitAttributes.Style.
Lidar com toques e atualizações
Anchor link toConforme-se ao PushwooshInboxKitDelegate para reagir a ações do usuário e eventos de atualização. Cada método tem uma implementação padrão, então você só sobrescreve o que precisa:
final class InboxCoordinator: NSObject, PushwooshInboxKitDelegate { func inboxKit(_ vc: PushwooshInboxKitViewController, didSelect message: PWInboxMessageProtocol) -> Bool { // Retorne true para permitir que o SDK abra a URL da mensagem ou richmedia. // Retorne false se você lidou com o toque inteiramente (por exemplo, roteou para uma tela personalizada). return true }
func inboxKit(_ vc: PushwooshInboxKitViewController, didRefreshWith messages: [PWInboxMessageProtocol], error: Error?) { // Mostre seu próprio estado de vazio / erro aqui, se necessário. }}
inboxVC.delegate = inboxCoordinatorO SDK fornece operações em massa como métodos @objc no controlador, para que você possa conectá-los diretamente a um 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]