Перейти к содержанию

Настройка Message Inbox для Flutter

Message Inbox (входящие сообщения, иконка «колокольчик») для Flutter поставляется в виде отдельного пакета pushwoosh_inbox. Установите его вместе с базовым пакетом pushwoosh_flutter.

Предварительные требования

Anchor link to

Добавьте пакет

Anchor link to

Добавьте pushwoosh_inbox в ваш pubspec.yaml. Проверьте актуальную версию на pub.dev:

pubspec.yaml
dependencies:
pushwoosh_inbox: '^2.3.24'

Покажите входящие

Anchor link to
import 'package:pushwoosh_inbox/pushwoosh_inbox.dart';
PushwooshInbox.presentInboxUI();

Это откроет нативный экран (view controller на iOS, Activity на Android) со стандартным внешним видом SDK.

Настройте стиль

Anchor link to

Передайте PWInboxStyle в presentInboxUI(). Каждое поле является необязательным и сохраняет свое значение по умолчанию, если не установлено. Поля для изображений — это пути к ресурсам Flutter, и они должны быть объявлены в вашем pubspec.yaml:

ПолеНастраивает
dateFormatФорматирование даты, например "dd.MMMM.yyyy"
defaultImageИконка по умолчанию рядом с сообщением без изображения
unreadImageОтметка о непрочитанных сообщениях (только для iOS)
listErrorImageОтображается при ошибке загрузки списка
listEmptyImageОтображается, когда в списке нет сообщений
listErrorMessageТекст ошибки (не локализован)
listEmptyMessageТекст для пустого списка (не локализован)
barTitleЗаголовок экрана входящих
defaultTextColorЦвет текста по умолчанию (только для iOS)
accentColorАкцентный цвет
backgroundColorЦвет фона
highlightColorЦвет выделения
titleColorЦвет заголовка сообщения
readTitleColorЦвет заголовка для прочитанных сообщений (только для Android)
descriptionColorЦвет описания сообщения
readDescriptionColorЦвет описания для прочитанных сообщений (только для Android)
dateColorЦвет даты сообщения
readDateColorЦвет даты для прочитанных сообщений (только для Android)
dividerColorЦвет разделителя
barBackgroundColorЦвет фона заголовка
barAccentColorЦвет кнопки «назад» в заголовке
barTextColorЦвет текста в заголовке
imageTypeColorЦвет иконки действия для непрочитанных сообщений, например, deep link или URL (только для Android)
readImageTypeColorЦвет иконки действия для прочитанных сообщений (только для Android)
PWInboxStyle style = PWInboxStyle();
style.barTitle = "Сообщения";
style.barBackgroundColor = "#3AD29F";
style.accentColor = "#6750A4";
style.listEmptyMessage = "Сообщений пока нет";
style.defaultImage = "assets/images/logo.png";
PushwooshInbox.presentInboxUI(style: style);

Управляйте сообщениями программно

Anchor link to

Загружайте список сообщений, количество прочитанных и выполняйте действия с отдельными сообщениями, не открывая встроенный экран. Это полезно для создания собственного UI для входящих или для значка с количеством непрочитанных сообщений:

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");
}
PushwooshInbox.readMessage(messageCode);
PushwooshInbox.deleteMessage(messageCode);
PushwooshInbox.performAction(messageCode); // выполняет действие сообщения по умолчанию, например, открытие URL

loadCachedMessages() возвращает последний локально кэшированный список без сетевого вызова на Android. На iOS в настоящее время он ведет себя так же, как loadMessages(), и все равно выполняет сетевой вызов.