Saltar al contenido

Configurar InboxKit con CocoaPods

Disponible desde el SDK de iOS 7.0.40.

InboxKit se distribuye como un subspec opcional del pod paraguas PushwooshXCFramework. Necesitas que el SDK principal ya esté integrado; si estás empezando desde cero, sigue primero la Guía de integración básica.

Añadir el pod de InboxKit

Anchor link to

1. Abre tu Podfile y añade el subspec de InboxKit a tu target de la aplicación:

target 'MyApp' do
use_frameworks!
pod 'PushwooshXCFramework'
pod 'PushwooshXCFramework/PushwooshInboxKit'
end

2. Ejecuta pod install desde el directorio de tu proyecto:

Terminal window
pod install

3. Abre el archivo .xcworkspace generado. InboxKit ahora está enlazado junto con el SDK principal.

Mostrar la bandeja de entrada

Anchor link to

Añade el controlador de la bandeja de entrada a cualquier flujo de navegación. La configuración por defecto es suficiente para tener una bandeja de entrada funcional con los tres tipos de celdas estándar:

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

Personalizar la bandeja de entrada

Anchor link to

En Swift, configura el controlador a través del tipo de valor PushwooshInboxKitAttributes. En Objective-C, utiliza los setters compatibles con @objc en el controlador — PushwooshInboxKitAttributes es una estructura de Swift y no se puentea.

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)

La estructura Style expone todos los colores, fuentes, radios de esquina y el formateador de fecha utilizado por las celdas por defecto. Cada valor es un color semántico de Apple por defecto, por lo que la bandeja de entrada reacciona automáticamente al modo oscuro del sistema.

Feed de InboxKit con estilo personalizado con colores de marca aplicados al título y al indicador de no leído

Celda con leyenda con un tema personalizado aplicado a través de PushwooshInboxKitAttributes.Style.

Manejar toques y actualizaciones

Anchor link to

Adáptate a PushwooshInboxKitDelegate para reaccionar a las acciones del usuario y a los eventos de actualización. Cada método tiene una implementación por defecto, por lo que solo necesitas sobreescribir lo que necesites:

final class InboxCoordinator: NSObject, PushwooshInboxKitDelegate {
func inboxKit(_ vc: PushwooshInboxKitViewController,
didSelect message: PWInboxMessageProtocol) -> Bool {
// Devuelve true para permitir que el SDK abra la URL del mensaje o el richmedia.
// Devuelve false si has manejado el toque por completo (p. ej., redirigiendo a una pantalla personalizada).
return true
}
func inboxKit(_ vc: PushwooshInboxKitViewController,
didRefreshWith messages: [PWInboxMessageProtocol],
error: Error?) {
// Muestra tu propio estado de vacío / error aquí si es necesario.
}
}
inboxVC.delegate = inboxCoordinator

El SDK incluye operaciones masivas como métodos @objc en el controlador, por lo que puedes conectarlos directamente a un 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 pasos

Anchor link to