Pular para o conteúdo

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

Adicionar o pacote

Anchor link to

Adicione pushwoosh_inbox ao seu pubspec.yaml. Verifique pub.dev para a versão atual:

pubspec.yaml
dependencies:
pushwoosh_inbox: '^2.3.24'

Mostrar a caixa de entrada

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

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

CampoPersonaliza
dateFormatFormatação de data, ex. "dd.MMMM.yyyy"
defaultImageO ícone padrão ao lado de uma mensagem sem imagem
unreadImageA marca de mensagens não lidas (somente iOS)
listErrorImageExibido quando o carregamento da lista falha
listEmptyImageExibido quando a lista não tem mensagens
listErrorMessageTexto de erro (não localizado)
listEmptyMessageTexto de lista vazia (não localizado)
barTitleO título da tela da caixa de entrada
defaultTextColorCor do texto padrão (somente iOS)
accentColorCor de destaque
backgroundColorCor de fundo
highlightColorCor de seleção
titleColorCor do título da mensagem
readTitleColorCor do título para mensagens lidas (somente Android)
descriptionColorCor da descrição da mensagem
readDescriptionColorCor da descrição para mensagens lidas (somente Android)
dateColorCor da data da mensagem
readDateColorCor da data para mensagens lidas (somente Android)
dividerColorCor do separador
barBackgroundColorA cor de fundo da barra de título
barAccentColorA cor do botão de voltar da barra de título
barTextColorA cor do texto da barra de título
imageTypeColorA cor do ícone de ação não lida, ex. deep link ou URL (somente Android)
readImageTypeColorA 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 to

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

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