Saltar al contenido

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

Añadir el paquete

Anchor link to

Añade pushwoosh_inbox a tu pubspec.yaml. Consulta pub.dev para ver la versión actual:

pubspec.yaml
dependencies:
pushwoosh_inbox: '^2.3.24'

Mostrar la bandeja de entrada

Anchor link to
import '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 to

Pasa 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:

CampoPersonaliza
dateFormatFormato de fecha, p. ej. "dd.MMMM.yyyy"
defaultImageEl ícono predeterminado junto a un mensaje sin imagen
unreadImageLa marca de mensajes no leídos (solo iOS)
listErrorImageSe muestra cuando falla la carga de la lista
listEmptyImageSe muestra cuando la lista no tiene mensajes
listErrorMessageTexto de error (no localizado)
listEmptyMessageTexto de lista vacía (no localizado)
barTitleEl título de la pantalla de la bandeja de entrada
defaultTextColorColor de texto predeterminado (solo iOS)
accentColorColor de acento
backgroundColorColor de fondo
highlightColorColor de selección
titleColorColor del título del mensaje
readTitleColorColor del título para mensajes leídos (solo Android)
descriptionColorColor de la descripción del mensaje
readDescriptionColorColor de la descripción para mensajes leídos (solo Android)
dateColorColor de la fecha del mensaje
readDateColorColor de la fecha para mensajes leídos (solo Android)
dividerColorColor del separador
barBackgroundColorEl color de fondo de la barra de título
barAccentColorEl color del botón de retroceso de la barra de título
barTextColorEl color del texto de la barra de título
imageTypeColorEl color del ícono de acción no leído, p. ej. deep link o URL (solo Android)
readImageTypeColorEl 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 to

Carga 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 URL

loadCachedMessages() 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.