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

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

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

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

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

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

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

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

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

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

Примечание. Этот продукт недоступен для 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:

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

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

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

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

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

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

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

Чтобы Firebase In-App Messaging мог использовать измененные дисплеи сообщений вместо дисплеев по умолчанию, обновите свой подфайл, чтобы использовать настроенную библиотеку 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