Configuración de la Bandeja de Entrada de Mensajes para Flutter
La Bandeja de Entrada de Mensajes (el “ícono de campana” de la Bandeja de Entrada de la App) para Flutter se distribuye como un paquete separado pushwoosh_inbox, instálalo junto con el paquete base pushwoosh_flutter.
Prerrequisitos
Anchor link to- El SDK base de Pushwoosh para Flutter ya está integrado y enviando pushes.
Añadir el paquete
Anchor link toAñade pushwoosh_inbox a tu pubspec.yaml. Consulta pub.dev para ver la versión actual:
dependencies: pushwoosh_inbox: '^2.3.24'Mostrar la bandeja de entrada
Anchor link toimport 'package:pushwoosh_inbox/pushwoosh_inbox.dart';
PushwooshInbox.presentInboxUI();Esto abre una pantalla nativa (un view controller en iOS, una Activity en Android) con la apariencia predeterminada del SDK.
Personalizar el estilo
Anchor link toPasa un PWInboxStyle a presentInboxUI(). Cada campo es opcional y mantiene su valor predeterminado si no se establece. Los campos de imagen son rutas de assets de Flutter y deben declararse en tu pubspec.yaml:
| Campo | Personaliza |
|---|---|
dateFormat | Formato de fecha, p. ej. "dd.MMMM.yyyy" |
defaultImage | El ícono predeterminado junto a un mensaje sin imagen |
unreadImage | La marca de mensajes no leídos (solo iOS) |
listErrorImage | Se muestra cuando falla la carga de la lista |
listEmptyImage | Se muestra cuando la lista no tiene mensajes |
listErrorMessage | Texto de error (no localizado) |
listEmptyMessage | Texto de lista vacía (no localizado) |
barTitle | El título de la pantalla de la bandeja de entrada |
defaultTextColor | Color de texto predeterminado (solo iOS) |
accentColor | Color de acento |
backgroundColor | Color de fondo |
highlightColor | Color de selección |
titleColor | Color del título del mensaje |
readTitleColor | Color del título para mensajes leídos (solo Android) |
descriptionColor | Color de la descripción del mensaje |
readDescriptionColor | Color de la descripción para mensajes leídos (solo Android) |
dateColor | Color de la fecha del mensaje |
readDateColor | Color de la fecha para mensajes leídos (solo Android) |
dividerColor | Color del separador |
barBackgroundColor | El color de fondo de la barra de título |
barAccentColor | El color del botón de retroceso de la barra de título |
barTextColor | El color del texto de la barra de título |
imageTypeColor | El color del ícono de acción no leído, p. ej. deep link o URL (solo Android) |
readImageTypeColor | El color del ícono de acción leído (solo Android) |
PWInboxStyle style = PWInboxStyle();style.barTitle = "Mensajes";style.barBackgroundColor = "#3AD29F";style.accentColor = "#6750A4";style.listEmptyMessage = "Aún no hay mensajes";style.defaultImage = "assets/images/logo.png";PushwooshInbox.presentInboxUI(style: style);Gestionar mensajes programáticamente
Anchor link toCarga la lista de mensajes, los recuentos de leídos y actúa sobre mensajes individuales sin abrir la pantalla integrada. Esto es útil para una UI de bandeja de entrada personalizada o una insignia de no leídos:
try { List<InboxMessage> messages = await PushwooshInbox.loadMessages(); for (final message in messages) { print("${message.title}: ${message.message}"); }
int? unread = await PushwooshInbox.unreadMessagesCount(); int? total = await PushwooshInbox.messagesCount(); int? notActedOn = await PushwooshInbox.messagesWithNoActionPerformedCount();} catch (error) { print("Error al cargar los datos de la bandeja de entrada: $error");}
PushwooshInbox.readMessage(messageCode);PushwooshInbox.deleteMessage(messageCode);PushwooshInbox.performAction(messageCode); // ejecuta la acción predeterminada del mensaje, p. ej. abrir una URLloadCachedMessages() devuelve la última lista almacenada en caché localmente sin una llamada de red en Android. En iOS, actualmente se comporta igual que loadMessages() y sigue haciendo la llamada de red.