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 的默认显示方式,或从头开始创建自己的消息显示库。
修改默认显示方式
最直接的自定义消息的方法是以 Firebase In-App Messaging 的默认消息显示代码为基础进行构建。
克隆 firebase-ios-sdk
代码库
如需开始操作,请克隆最新版 firebase-ios-sdk
代码库,然后打开 InAppMessaging 目录。
选择要修改的消息类型
通过克隆代码库,您可以修改以下任何或所有 Firebase In-App Messaging 消息类型:Card
、Modal
、Banner
和 ImageOnly
。每种类型都对应 Firebase In-App Messaging 宣传活动创建流程中的一种消息布局。
相应地,每种类型都可以访问一组不同的数据,具体取决于 Firebase 控制台中的宣传活动自定义选项:
类型 | titleText | bodyText | textColor | backgroundColor | imageData | actionButton | secondaryActionButton |
---|---|---|---|---|---|---|---|
Card | |||||||
Modal | |||||||
Banner | |||||||
ImageOnly |
修改消息显示呈现代码
您可以根据需要随意修改消息的显示方式,但需注意有关消息类型的限制。您可以创建一个显示在应用底部的横幅、移动模态窗口上的操作按钮、在用户 Feed 中嵌入应用内消息,或进行任何其他修改,以使消息的外观和风格与您的应用相契合。
修改消息显示方式时需要注意以下两点:
- 消息类型目录:每种消息类型都有一个单独的目录,其中包含确定该类型逻辑的文件:
- Storyboard:
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
协议来显示它收到的消息。如需构建您自己的显示库,请编写一个实现该协议的类。
如需了解协议定义以及如何遵循该协议,请查看 InAppMessaging
库的 FIRInAppMessagingDisplay.h
文件。
将 messageDisplayComponent
设置为使用您的消息显示库
InAppMessaging
使用其 messageDisplayComponent
属性来确定在显示消息时要使用的对象。将该属性设置为自定义消息显示类的对象,以便让 Firebase In-App Messaging 知道要使用您的库来呈现消息:
InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance