自定义 Firebase In-App Messaging 消息

Firebase In-App Messaging 提供了一组实用的预配置行为及带有默认外观和风格的消息类型,但在某些情况下,您可能需要扩展行为和消息内容。In-App Messaging 可让您在消息中添加操作并自定义消息的外观和风格。

在消息中添加操作

通过添加操作,您可以使用应用内消息将用户定向到某个网站或应用中的特定屏幕。

Firebase In-App Messaging 使用链接处理程序来处理操作。此 SDK 可以使用多个处理程序。因此,如果您的应用已有处理程序,则 Firebase In-App Messaging 无需进一步设置即可使用此处理程序。如果您还没有处理程序,则可以使用 Firebase Dynamic Links。如需了解详情,请参阅创建动态链接 (iOS)

使用 Firebase 控制台在消息中添加操作

应用有了链接处理程序之后,您就可以撰写含有操作的宣传活动了。打开 Firebase 控制台转到 In-App Messaging,然后启动一个新的宣传活动或修改现有宣传活动。在该宣传活动中,提供卡片按钮文本按钮操作图片操作横幅操作(这里的操作是指相关的深层链接)。

操作的格式取决于您选择的消息布局。模态窗口将获得具有可自定义按钮文本内容、文本颜色和背景颜色的操作按钮。而图片和顶部横幅则变为互动式,您在点按时系统会调用指定的操作。

修改消息的外观和风格

借助 Firebase In-App Messaging,您可以自定义消息的显示方式,以更改应用呈现消息的布局、字体样式、按钮形状和其他详细信息的方式。您可以通过以下两种方法修改消息显示方式:修改默认的 Firebase In-App Messaging 显示方式,或从头开始创建自己的消息显示库。

注意:此产品不适用于 macOS、Mac Catalyst、轻 App 或 watchOS 目标。

修改默认显示方式

自定义消息的最直接方法是以 Firebase In-App Messaging 的默认消息显示代码为基础进行构建。

克隆 firebase-ios-sdk 代码库

如需开始操作,请克隆最新版 firebase-ios-sdk 代码库,然后打开 InAppMessaging 目录

选择要修改的消息类型

通过克隆代码库,您可以修改任何或所有 Firebase In-App Messaging 消息类型:CardModalBannerImageOnly。每种类型都对应 Firebase In-App Messaging 宣传活动创建流程中的一种消息布局。

相应地,每种类型都可以访问由 Firebase 控制台中宣传活动自定义选项决定的一组不同的数据:

类型 titleText bodyText textColor backgroundColor imageData actionButton secondaryActionButton
Card
Modal
Banner
ImageOnly

修改消息显示呈现代码

消息类型对应有一定的限制,除此之外,您可以根据需要随意修改它们。您可以创建一个显示在应用底部的横幅、移动模态窗口上的操作按钮、在用户 Feed 中嵌入应用内消息,或进行任何其他修改,以使消息的外观和风格与您的应用相契合。

修改消息显示方式时需要注意以下两点:

修改偏好消息类型的目录中的文件以及 .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
完成后,您可以更新 pod,重建应用,然后便会看到新的自定义消息显示方式。

创建自己的消息显示库

您并非只能使用 InAppMessaging 库来创建用于显示消息的界面。您还可以完全从头开始编写自己的代码。

构建一个实现 InAppMessagingDisplay 协议的类

Firebase In-App Messaging 使用 InAppMessaging 类处理 Firebase 服务器与您的应用之间的通信。该类又会使用 InAppMessagingDisplay 协议来显示它收到的消息。如需构建您自己的显示库,请编写一个实现该协议的类。

如需该协议的协议定义以及如何遵循该协议的文档,请查看 InAppMessaging 库的 FIRInAppMessagingDisplay.h 文件。

messageDisplayComponent 设置为使用您的消息显示库

InAppMessaging 使用其 messageDisplayComponent 属性来确定在显示消息时要使用的对象。将该属性设置为自定义消息显示类的对象,以便让 Firebase In-App Messaging 知道要使用您的库来呈现消息:

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance