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

Настройка папки входящих сообщений для веба

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

Anchor link to

Убедитесь, что вы внедрили Pushwoosh Web SDK на своем сайте. Для этого следуйте нашему руководству.

Папка входящих сообщений для сайтов (Message Inbox) позволяет хранить веб-пуши, чтобы пользователи могли вернуться к ним позже, гарантируя, что важные сообщения будут увидены.

Как это работает

Anchor link to

Вот типичный рабочий процесс с InboxMessages:

ШагМетод
Загрузка страницы
Синхронизация сообщений с сервером

InboxMessagesModel.updateMessages
Выполняется во время инициализации SDK

Удаление устаревших сообщений

InboxMessagesModel.updateMessages
Выполняется во время инициализации SDK

Получение количества непрочитанных сообщений для обновления значка

Pushwoosh.pwinbox.unreadMessagesCount
Выполняется вручную (после срабатывания события onUpdateInboxMessages)

Загрузка сообщений для отображения в папке входящих

Pushwoosh.pwinbox.loadMessages
Выполняется вручную (после срабатывания события onUpdateInboxMessages)

Пометка сообщений, попавших в область просмотра, как прочитанных

Pushwoosh.pwinbox.readMessagesWithCodes
Выполняется вручную

Выполнение действия, назначенного открытому сообщению

Pushwoosh.pwinbox.performActionForMessageWithCode
Выполняется вручную

Удаление сообщений по клику на иконку удаления или свайпу вправо

Pushwoosh.pwinbox.performActionForMessageWithCode
Выполняется вручную

Прослушиватели событий

Anchor link to
onUpdateInboxMessages
// Выполняется после автоматического обновления папки входящих во время загрузки страницы.
Pushwoosh.push(['onUpdateInboxMessages', function(api, pwinbox) {
pwinbox.loadMessages().then(function(messages) {
console.log('EVENT: onUpdateInboxMessages', messages);
});
}]);
onPutNewMessageToInboxStore
// Выполняется ServiceWorker после получения сообщения для папки входящих и его сохранения в indexedDB.
Pushwoosh.push(['onPutNewMessageToInboxStore', function(api, message) {
console.log('EVENT: onPutNewMessageToInboxStore', message);
}]);

Публичный модуль

Anchor link to

Публичный модуль WebSDK InboxMessagesPublic представляет собой публичный интерфейс для реализации Web Inbox.

Model
type TInboxMessageTypePlain = 0;
type TInboxMessageTypeRichmedia = 1;
type TInboxMessageTypeURL = 2;
type TInboxMessageTypeDeeplink = 3;
type TInboxMessageType = TInboxMessageTypePlain // зависит от action_params
| TInboxMessageTypeRichmedia
| TInboxMessageTypeURL
| TInboxMessageTypeDeeplink;
type TInboxLayout = 'classic' | 'banner' | 'captioned' | 'carousel';
interface IInboxMessageSlide {
imageUrl: string;
caption: string; // подпись, наложенная на слайд; пустая, если у слайда ее нет
link: string; // куда ведет нажатие на слайд; пусто, если у слайда нет ссылки, и вместо этого применяется собственное действие сообщения
}
interface IInboxMessagePublic {
code: string; // inbox_id
title: string; // title
message: string; // body
imageUrl: string; // image
sendDate: string; // send_date, ISO 8601 в UTC
type: TInboxMessageType; // зависит от action_params
isRead: boolean; // true, если статус "read" или "open"
link: string; // Deeplink | URL | "/"
isActionPerformed: boolean; // true, если статус "open"
layout: TInboxLayout; // макет ячейки для отрисовки, уже упрощенный до того, который может отобразить это сообщение
iconUrl: string; // маленький круглый аватар; то же значение, что и imageUrl, под именем, которое используют макеты
heroUrl: string; // главное изображение; используется iconUrl, если у сообщения нет баннера, поэтому оно установлено и для классических сообщений
carousel: Array<IInboxMessageSlide>; // слайды макета карусели; пусто для всех остальных макетов
customData: Record<string, unknown>; // собственные пользовательские данные кампании, отправленные из панели управления
}

Макеты ячеек. Сообщение отображается в одном из четырех макетов — classic, banner, captioned или carousel — те же макеты, что и в предварительном просмотре кампании в панели управления. Макет, который не может быть отображен с имеющимися данными сообщения, упрощается до classic: для banner требуется главное изображение, для captioned — главное изображение, а также заголовок и тело сообщения, а для carousel — хотя бы один слайд, а также заголовок и тело сообщения. layout в публичном сообщении — это всегда фактически отрисованный макет, уже упрощенный.

Проверка layout — единственный надежный способ определить, как будет отображаться сообщение. heroUrl устанавливается и для classic сообщений (см. примечание к полю выше), поэтому интеграция не должна использовать его наличие для принятия решения об отрисовке главного изображения.

Публичные методы

Anchor link to

Ознакомьтесь с описаниями публичных методов в руководстве Web Push SDK 3.0.

Pushwoosh.pwinbox.syncMessages() загружает текущую папку входящих с сервера; вызовите его, чтобы принудительно обновить данные вне собственного опроса встроенного виджета.