Catch up on everthing we announced at this year's Firebase Summit. Learn more

自定义 Firebase In-App Messaging 消息

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

向消息中添加操作

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

Firebase 应用内消息使用链接处理程序来处理操作。此 SDK 可以使用多个处理程序。因此,如果您的应用已有处理程序,则 Firebase 应用内消息无需进一步设置即可使用此处理程序。如果您还没有处理程序,则可以使用 Firebase 动态链接。如需了解详情,请参阅在 iOS 上创建动态链接

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

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

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

修改消息的外观和风格

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

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

修改默认显示方式

自定义消息的最直接方法是以 Firebase 应用内消息的默认消息显示代码为基础编译。

克隆 firebase-ios-sdk 代码库

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

选择要修改的消息类型

通过克隆代码库,您可以修改任何或所有 Firebase 应用内消息消息类型:CardModalBannerImageOnly。每种类型都对应 Firebase 应用内消息广告系列创建流程中的一种消息布局。

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

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

修改消息显示呈现代码

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

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

修改目标消息类型的目录中的文件以及 .storyboard 的相应部分,以创建自定义消息显示方式。

更新 podfile 以使用修改后的 InAppMessaging 代码

如需使 Firebase 应用内消息使用修改后的消息显示方式(而不是默认显示方式),请更新 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 应用内消息使用 InAppMessaging 类处理 Firebase 服务器与您的应用之间的通信。该类又会使用 InAppMessagingDisplay 协议来显示它收到的消息。如需构建您自己的显示库,请编写一个实现该协议的类。

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

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

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

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance