自定义 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 控制台,浏览到 Messaging(消息传递),然后启动一个新的宣传活动或修改现有宣传活动。在该宣传活动中,提供卡片按钮文字按钮操作图片操作横幅操作(这里的操作是指相关的深层链接)。

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

修改消息的外观和风格

借助 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 消息类型: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