Configurando a Caixa de Entrada de Mensagens para Flutter
A Caixa de Entrada de Mensagens (o “ícone de sino” da Caixa de Entrada do Aplicativo) para Flutter é fornecida como um pacote separado pushwoosh_inbox, instale-o junto com o pacote base pushwoosh_flutter.
Pré-requisitos
Anchor link to- O SDK base do Pushwoosh para Flutter já está integrado e enviando pushes.
Adicionar o pacote
Anchor link toAdicione pushwoosh_inbox ao seu pubspec.yaml. Verifique pub.dev para a versão atual:
dependencies: pushwoosh_inbox: '^2.3.24'Mostrar a caixa de entrada
Anchor link toimport 'package:pushwoosh_inbox/pushwoosh_inbox.dart';
PushwooshInbox.presentInboxUI();Isso abre uma tela nativa (um view controller no iOS, uma Activity no Android) com a aparência padrão do SDK.
Personalizar o estilo
Anchor link toPasse um PWInboxStyle para presentInboxUI(). Cada campo é opcional e mantém seu valor padrão quando não definido. Os campos de imagem são caminhos de assets do Flutter e devem ser declarados no seu pubspec.yaml:
| Campo | Personaliza |
|---|---|
dateFormat | Formatação de data, ex. "dd.MMMM.yyyy" |
defaultImage | O ícone padrão ao lado de uma mensagem sem imagem |
unreadImage | A marca de mensagens não lidas (somente iOS) |
listErrorImage | Exibido quando o carregamento da lista falha |
listEmptyImage | Exibido quando a lista não tem mensagens |
listErrorMessage | Texto de erro (não localizado) |
listEmptyMessage | Texto de lista vazia (não localizado) |
barTitle | O título da tela da caixa de entrada |
defaultTextColor | Cor do texto padrão (somente iOS) |
accentColor | Cor de destaque |
backgroundColor | Cor de fundo |
highlightColor | Cor de seleção |
titleColor | Cor do título da mensagem |
readTitleColor | Cor do título para mensagens lidas (somente Android) |
descriptionColor | Cor da descrição da mensagem |
readDescriptionColor | Cor da descrição para mensagens lidas (somente Android) |
dateColor | Cor da data da mensagem |
readDateColor | Cor da data para mensagens lidas (somente Android) |
dividerColor | Cor do separador |
barBackgroundColor | A cor de fundo da barra de título |
barAccentColor | A cor do botão de voltar da barra de título |
barTextColor | A cor do texto da barra de título |
imageTypeColor | A cor do ícone de ação não lida, ex. deep link ou URL (somente Android) |
readImageTypeColor | A cor do ícone de ação lida (somente Android) |
PWInboxStyle style = PWInboxStyle();style.barTitle = "Mensagens";style.barBackgroundColor = "#3AD29F";style.accentColor = "#6750A4";style.listEmptyMessage = "Nenhuma mensagem ainda";style.defaultImage = "assets/images/logo.png";PushwooshInbox.presentInboxUI(style: style);Gerenciar mensagens programaticamente
Anchor link toCarregue a lista de mensagens, contagens de leitura e atue em mensagens individuais sem abrir a tela integrada. Isso é útil para uma interface de caixa de entrada personalizada ou um selo de não lidas:
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("Falha ao carregar dados da caixa de entrada: $error");}
PushwooshInbox.readMessage(messageCode);PushwooshInbox.deleteMessage(messageCode);PushwooshInbox.performAction(messageCode); // executa a ação padrão da mensagem, ex. abrir uma URLloadCachedMessages() retorna a última lista em cache local sem uma chamada de rede no Android. No iOS, atualmente se comporta da mesma forma que loadMessages() e ainda faz a chamada de rede.