Настройте сообщения обмена сообщениями Firebase в приложении


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

Добавьте действие к вашему сообщению

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

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

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

Как только в вашем приложении появится обработчик ссылок, вы будете готовы составить кампанию с действием. Откройте консоль Firebase для обмена сообщениями и начните новую кампанию или отредактируйте существующую кампанию. В этой кампании укажите Card , Button text и Button action , Image action или Banner action , где действие — это соответствующая глубокая ссылка.

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

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

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 :

Тип заголовокТекст bodyText Цвет текста Цвет фона imageData кнопка действия вторичная кнопка действия
Карточка
Модальный
Баннер
Только изображение

Измените код отображения сообщения

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

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

  • Каталоги типов сообщений: Каждый тип сообщений имеет отдельный каталог с файлами, определяющими логику этого типа:
  • Раскадровка: Библиотека 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