Настройка папки входящих сообщений для веба
Предварительные требования
Anchor link toУбедитесь, что вы внедрили Pushwoosh Web SDK на своем сайте. Для этого следуйте нашему руководству.
Папка входящих сообщений для сайтов (Message Inbox) позволяет хранить веб-пуши, чтобы пользователи могли вернуться к ним позже, гарантируя, что важные сообщения будут увидены.
Как это работает
Anchor link toВот типичный рабочий процесс с InboxMessages:
| Шаг | Метод |
|---|---|
| Загрузка страницы | |
| Синхронизация сообщений с сервером |
|
| Удаление устаревших сообщений |
|
| Получение количества непрочитанных сообщений для обновления значка |
|
| Загрузка сообщений для отображения в папке входящих |
|
| Пометка сообщений, попавших в область просмотра, как прочитанных |
|
| Выполнение действия, назначенного открытому сообщению |
|
| Удаление сообщений по клику на иконку удаления или свайпу вправо |
|
Прослушиватели событий
Anchor link to// Выполняется после автоматического обновления папки входящих во время загрузки страницы.Pushwoosh.push(['onUpdateInboxMessages', function(api, pwinbox) { pwinbox.loadMessages().then(function(messages) { console.log('EVENT: onUpdateInboxMessages', messages); });}]);// Выполняется ServiceWorker после получения сообщения для папки входящих и его сохранения в indexedDB.Pushwoosh.push(['onPutNewMessageToInboxStore', function(api, message) { console.log('EVENT: onPutNewMessageToInboxStore', message);}]);Публичный модуль
Anchor link toПубличный модуль WebSDK InboxMessagesPublic представляет собой публичный интерфейс для реализации Web Inbox.
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() загружает текущую папку входящих с сервера; вызовите его, чтобы принудительно обновить данные вне собственного опроса встроенного виджета.