自定義您的 Firebase 應用內消息

Firebase 應用內消息提供了一組有用的預配置行為和消息類型,具有默認外觀,但在某些情況下,您可能希望擴展行為和消息內容。應用內消息允許您向消息添加操作並自定義消息外觀。

向您的消息添加操作

通過操作,您可以使用應用內消息將用戶引導至網站或應用中的特定屏幕。

Firebase 應用內消息使用鏈接處理程序來處理操作。 SDK 能夠使用許多處理程序,因此如果您的應用已經有一個,Firebase 應用內消息可以使用它而無需任何進一步的設置。如果您還沒有處理程序,則可以使用 Firebase 動態鏈接。要了解更多信息,請閱讀在 iOS 上創建動態鏈接

使用 Firebase 控制台將操作添加到您的消息中

一旦您的應用程序具有鏈接處理程序,您就可以通過操作來編寫廣告系列了。打開 Firebase 控制台到In-App Messaging ,然後開始一個新的活動或編輯一個現有的活動。在該活動中,提供CardButton textButton actionImage actionBanner action ,其中該操作是相關的深層鏈接。

操作的格式取決於您選擇的消息佈局。 Modals 獲得具有可自定義按鈕文本內容、文本顏色和背景顏色的操作按鈕。另一方面,圖像和頂部橫幅變成交互式並在點擊時調用指定的操作。

修改消息外觀

Firebase 應用內消息讓您可以自定義消息顯示,以更改您的應用呈現消息佈局、字體樣式、按鈕形狀和其他詳細信息的方式。有兩種方法可以修改消息顯示:修改默認的 Firebase 應用內消息顯示或從頭開始創建您自己的消息顯示庫。

注意:此產品不適用於 macOS、Mac Catalyst、App Clip 或 watchOS 目標。

修改默認顯示

自定義消息最直接的方法是構建 Firebase 應用內消息的默認消息顯示代碼。

克隆firebase-ios-sdk

首先,克隆最新版本firebase-ios-sdk存儲庫,然後打開InAppMessaging 目錄

選擇要修改的消息類型

克隆 repo 後,您可以修改任何或所有 Firebase In-App Messaging 消息類型: CardModalBannerImageOnly 。每種類型對應於 Firebase 應用內消息活動創建流程中的消息佈局。

因此,每種類型都可以訪問一組不同的數據,這些數據由 Firebase 控制台中的廣告系列自定義選項確定:

類型標題文本主體文字顏色背景顏色圖像數據動作按鈕次要動作按鈕
卡片
模態
橫幅
僅圖像

修改消息顯示渲染代碼

考慮到消息類型限制,您可以隨意修改它們。您可以創建一個顯示在應用底部的橫幅,在模式上移動操作按鈕,將應用內消息嵌入用戶的提要中,或進行任何其他修改以使消息的外觀和感覺適合您的應用.

修改消息顯示時主要需要注意兩點:

修改首選消息類型目錄和.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庫來創建用於顯示消息的 UI。您也可以從頭開始編寫自己的代碼。

構建一個實現InAppMessagingDisplay協議的類

Firebase In-App Messaging 使用InAppMessaging類來處理 Firebase 服務器和您的應用之間的通信。反過來,該類使用InAppMessagingDisplay協議來顯示它接收到的消息。要構建您自己的顯示庫,請編寫一個實現該協議的類。

協議定義和如何符合它的文檔位於InAppMessaging庫的FIRInAppMessagingDisplay.h文件中。

設置messageDisplayComponent以使用您的消息顯示庫

InAppMessaging使用其messageDisplayComponent屬性來確定在顯示消息時使用哪個對象。將該屬性設置為自定義消息顯示類的對象,以便 Firebase 應用內消息知道使用您的庫來呈現消息:

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance