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


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

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

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

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

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

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

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

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

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 цвет текста backgroundColor данные изображения кнопка действия вторичная кнопка действия
Карта
Модальный
Баннер
Только изображение

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

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

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

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