自定义在 iOS 应用中呈现的提供 Firebase 应用内消息传递的消息

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

修改默认显示方式

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

克隆 firebase-ios-sdk 代码库

首先,克隆 firebase-ios-sdk 代码库,然后打开 InAppMessagingDisplay 目录

选择要修改的消息类型

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

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

类型 titleText bodyText textColor backgroundColor imageData actionButton
Modal check check check check check check
Banner check check check check check
ImageOnly check

修改消息显示呈现代码

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

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

  • 消息类型目录:每种消息类型都有一个单独的目录,其中包含确定该类型逻辑的文件:
  • 故事板InAppMessagingDisplay 库还有一个 .storyboard 文件,该文件可帮助定义所有三种消息类型的界面:

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

更新 podfile 以使用修改后的 InAppMessagingDisplay

要使 Firebase 应用内消息使用修改后的消息显示方式(而不是默认显示方式),请更新 podfile 以使用自定义的 InAppMessagingDisplay

# 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 InAppMessagingDisplay pod:
# pod 'Firebase/InAppMessagingDisplay'

# Overwrite it with a version that points to your local copy:
pod `FirebaseInAppMessagingDisplay', :path => '~/Path/To/The/Cloned/Repo/'

end

完成后,您可以更新自己的 pod,重新构建自己的应用,并查看新的自定义消息显示方式。

创建自己的消息显示库

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

构建一个实现 FIRInAppMessagingRendering 接口的类

Firebase 应用内消息使用 FIRInAppMessaging 类处理 Firebase 服务器与您的应用之间的通信。该类又会使用 FIRInAppMessagingRendering 协议来显示它收到的消息。要构建您自己的显示库,请编写一个实现该协议的类。

如需该协议的协议定义以及有关如何做到遵循该协议的文档,请查看 InAppMessaging 库的 FIRInAppMessagingRendering.h 文件。如果您已经设置了 Firebase 应用内消息,则可以在 Xcode 项目目录下找到该文件:

FirebaseInAppMessaging > Frameworks > FirebaseInAppMessaging.framework > Headers > FIRInAppMessagingRendering.h

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

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

[FIRInAppMessaging inAppMessaging].messageDisplayComponent = yourFIRInAppMessagingRenderingInstance;

修改 podfile 以使用 Firebase 应用内消息的无头版本

默认的 Firebase 应用内消息 pod (Firebase/InAppMessagingDisplay) 会自动将其自身指定为您应用的 messageDisplayComponent。要解决此问题,请改用无头 Firebase/InAppMessaging pod:

# 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 InAppMessagingDisplay pod:
# pod 'Firebase/InAppMessagingDisplay'

# Include the headless pod instead:
pod `Firebase/InAppMessaging'

end

完成后,您可以更新自己的 pod,重新构建自己的应用,并查看新的自定义消息显示方式。

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面