Configurar o InboxKit com o Swift Package Manager
Disponível desde o SDK do iOS 7.0.40.
O InboxKit é fornecido como um produto de biblioteca separado dentro do pacote Swift Pushwoosh-XCFramework. 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 produto do pacote InboxKit
Anchor link to-
Abra seu projeto no Xcode e navegue até as configurações do projeto → Package Dependencies, em seguida, pressione o botão +.
-
Insira a seguinte URL do pacote:
https://github.com/Pushwoosh/Pushwoosh-XCFramework-
Configure a Dependency Rule para Up to Next Major Version com a versão estável mais recente e, em seguida, clique em Add Package.
-
Na tela de seleção de pacotes, escolha pelo menos os seguintes produtos e adicione-os ao seu alvo principal do aplicativo:
- PushwooshFramework (obrigatório)
- PushwooshCore (obrigatório)
- PushwooshBridge (obrigatório)
- PushwooshInboxKit (o novo módulo)

Adicione os quatro produtos destacados ao seu alvo principal do aplicativo.
- Abra o alvo principal do seu aplicativo e, em Frameworks, Libraries, and Embedded Content, confirme que o
PushwooshInboxKit.xcframeworkestá listado e incorporado.
É isso — 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 compatíveis com @objc no controlador — PushwooshInboxKitAttributes é uma struct Swift e não é “bridged”.
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 com legenda com um tema personalizado aplicado através de PushwooshInboxKitAttributes.Style.
Lidar com toques e atualizações
Anchor link toConforme-se com 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ó substitui o que precisa:
final class InboxCoordinator: NSObject, PushwooshInboxKitDelegate { func inboxKit(_ vc: PushwooshInboxKitViewController, didSelect message: PWInboxMessageProtocol) -> Bool { // Return true to let the SDK open the message URL or richmedia. // Return false if you handled the tap entirely (e.g. routed to a custom screen). return true }
func inboxKit(_ vc: PushwooshInboxKitViewController, didRefreshWith messages: [PWInboxMessageProtocol], error: Error?) { // Show your own empty / error state here if needed. }}
inboxVC.delegate = inboxCoordinator