Pular para o conteúdo

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
  1. Abra seu Podfile e adicione o subspec do InboxKit ao seu alvo de aplicativo:
target 'MyApp' do
use_frameworks!
pod 'PushwooshXCFramework'
pod 'PushwooshXCFramework/PushwooshInboxKit'
end
  1. Execute pod install a partir do diretório do seu projeto:
Terminal window
pod install
  1. Abra o arquivo .xcworkspace gerado. O InboxKit agora está vinculado junto com o SDK principal.

Mostrar a caixa de entrada

Anchor link to

Adicione 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)

Personalizar a caixa de entrada

Anchor link to

Em 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 = true
attributes.swipeToDeleteEnabled = true
attributes.pinningEnabled = true
attributes.style.unreadBadgeColor = .systemBlue
attributes.style.titleFont = .systemFont(ofSize: 17, weight: .semibold)
let inboxVC = PushwooshInboxKitViewController(attributes: attributes)

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.

Feed do InboxKit com estilo personalizado com cores da marca aplicadas ao título e ao indicador de não lido

Célula legendada com um tema personalizado aplicado através de PushwooshInboxKitAttributes.Style.

Lidar com toques e atualizações

Anchor link to

Conforme-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 = inboxCoordinator

O 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]

Próximos passos

Anchor link to