Как настроить сообщения Firebase In-App Messaging


В Firebase In-App Messaging есть полезный набор стандартных типов сообщений и вариантов их поведения, а также внешний вид по умолчанию. Однако в некоторых случаях вам может понадобиться расширить возможности и контент сообщений. Сообщения в приложении позволяют добавлять в сообщения действия и настраивать их внешний вид.

Как добавить действие в сообщение

С помощью действий вы можете направлять пользователей из сообщений в приложении на сайт или определенный экран приложения.

Firebase In-App Messaging использует обработчики ссылок для выполнения действий. SDK может использовать несколько обработчиков, поэтому, если в вашем приложении уже есть один из них, Firebase In-App Messaging может использовать его без дополнительной настройки. Если у вас ещё нет обработчика, вы можете использовать Firebase Dynamic Links. Подробнее о том, как создавать динамические ссылки в iOS…

Как добавить действие в письмо с помощью консоли Firebase

После того как обработчик ссылок будет добавлен в приложение, вы сможете создать кампанию с действием.

  1. В консоли Firebase выберите DevOps & Engagement (DevOps и взаимодействие) > Messaging (Обмен сообщениями).

  2. Чтобы запустить рабочий процесс для настройки новой кампании, выполните следующие действия:

    • Если это ваша первая кампания:

      1. Нажмите Создайте первую кампанию.
      2. Выберите Сообщения в приложении Firebase и нажмите Создать.
    • Если вы уже создавали кампании:

      1. На вкладке Кампании нажмите Новая кампания.
      2. Выберите Сообщения в приложении.
  3. Следуйте инструкциям на экране, чтобы настроить кампанию.

  4. Укажите карточку, текст кнопки и действие кнопки, действие с изображением или действие с баннером, где действие – это релевантная прямая ссылка.

Формат действия зависит от выбранного макета сообщения. В модальных окнах есть кнопки действий с настраиваемым текстом, цветом текста и цветом фона. Изображения и верхние баннеры становятся интерактивными и вызывают указанное действие при нажатии.

Как изменить внешний вид сообщения

Firebase In-App Messaging позволяет настраивать отображение сообщений, изменяя макет, стили шрифтов, формы кнопок и другие детали. Изменить показ сообщений можно двумя способами: изменить настройки по умолчанию Firebase In-App Messagingили создать собственную библиотеку сообщений с нуля.

Примечание. Этот продукт недоступен для macOS, Mac Catalyst, App Clip и watchOS.

Как изменить экраны по умолчанию

Самый простой способ настроить сообщения – использовать код для показа стандартного сообщения от Firebase In-App Messaging.

Как клонировать репозиторий firebase-ios-sdk

Для начала клонируйте последнюю версию репозитория firebase-ios-sdk и откройте каталог InAppMessaging.

Как выбрать типы сообщений для изменения

После клонирования репозитория вы можете изменить любые или все типы сообщений Firebase In-App Messaging: Card, Modal, Banner и ImageOnly. Каждый тип соответствует макету сообщения в процессе создания кампании Firebase In-App Messaging.

Таким образом, каждый тип имеет доступ к разным наборам данных, определяемым параметрами кампании в консоли Firebase:

Тип titleText bodyText textColor backgroundColor imageData actionButton secondaryActionButton
Карточка
Модальное окно
Баннер
ImageOnly

Как изменить код отрисовки сообщения

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

При изменении отображения сообщений нужно учитывать два основных фактора:

  • Каталоги типов сообщений. Для каждого типа сообщений есть отдельный каталог с файлами, определяющими логику этого типа:
  • Раскадровка. В библиотеке InAppMessaging также есть файл .storyboard, который помогает определить интерфейс для всех трех типов сообщений:

Измените файлы в каталогах нужных типов сообщений и соответствующие разделы .storyboard, чтобы создать собственные сообщения.

Как обновить файл podfile, чтобы использовать измененный код InAppMessaging

Чтобы Firebase In-App Messaging использовал измененные сообщения вместо стандартных, обновите файл Podfile, чтобы использовать вашу библиотеку InAppMessaging:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'YourProject' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

# Pods for YourProject
pod 'Firebase'

# Remove the default InAppMessaging pod:
# pod 'Firebase/InAppMessaging'

# Overwrite it with a version that points to your local copy:
pod `FirebaseInAppMessaging', :path => '~/Path/To/The/Cloned/Repo/'

end
После этого вы сможете обновить свои модули, пересобрать приложение и увидеть новые сообщения.

Как создать собственную библиотеку сообщений

Вы можете создавать интерфейс для показа сообщений не только с помощью библиотеки InAppMessaging. Вы также можете написать собственный код.

Создайте класс, реализующий протокол InAppMessagingDisplay.

Firebase In-App Messaging использует класс InAppMessaging для обмена данными между серверами Firebase и вашим приложением. Этот класс, в свою очередь, использует протокол InAppMessagingDisplay для отображения полученных сообщений. Чтобы создать собственную библиотеку, напишите класс, реализующий протокол.

Определение протокола и документация о том, как ему соответствовать, находятся в файле FIRInAppMessagingDisplay.h библиотеки InAppMessaging.

Как настроить приложение "messageDisplayComponent" для использования библиотеки сообщений

InAppMessaging использует свойство messageDisplayComponent, чтобы определить, какой объект использовать при показе сообщений. Задайте для этого свойства объект класса показа настраиваемых сообщений, чтобы Firebase In-App Messaging знал, что для отрисовки сообщений нужно использовать вашу библиотеку:

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance