Настройка Message Inbox для Flutter
Message Inbox (входящие сообщения, иконка «колокольчик») для Flutter поставляется в виде отдельного пакета pushwoosh_inbox. Установите его вместе с базовым пакетом pushwoosh_flutter.
Предварительные требования
Anchor link to- Базовый SDK Pushwoosh для Flutter уже интегрирован и отправляет пуши.
Добавьте пакет
Anchor link toДобавьте pushwoosh_inbox в ваш pubspec.yaml. Проверьте актуальную версию на pub.dev:
dependencies: pushwoosh_inbox: '^2.3.24'Покажите входящие
Anchor link toimport '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); // выполняет действие сообщения по умолчанию, например, открытие URLloadCachedMessages() возвращает последний локально кэшированный список без сетевого вызова на Android. На iOS в настоящее время он ведет себя так же, как loadMessages(), и все равно выполняет сетевой вызов.