自訂 Firebase 應用程式內通訊訊息


Firebase 應用程式內通訊功能提供一組實用的預先設定行為和訊息類型,並採用預設外觀和風格,但有時您可能需要擴充行為和訊息內容。應用程式內通訊訊息可讓您在訊息中新增動作,並自訂訊息的外觀和風格。

在訊息中加入動作

您可以透過動作,使用應用程式內訊息將使用者導向網站或應用程式中的特定畫面。

Firebase In-App Messaging 會使用連結處理常式處理動作。SDK 可以使用多個處理常式,因此如果應用程式已有處理常式,Firebase In-App Messaging即可使用,無須進一步設定。如果尚未設定處理常式,可以使用 Firebase Dynamic Links。詳情請參閱「在 iOS 上建立 Dynamic Links」一文。

使用 Firebase 控制台將動作新增至訊息

應用程式具備連結處理常式後,即可開始撰寫廣告活動並加入動作。開啟 Firebase 控制台,前往「訊息」,然後開始建立新廣告活動或編輯現有廣告活動。在該廣告活動中,提供資訊卡按鈕文字按鈕動作圖片動作橫幅動作,其中動作是相關的深層連結。

動作的格式取決於您選擇的訊息版面配置。模式會取得動作按鈕,且按鈕文字內容、文字顏色和背景顏色皆可自訂。另一方面,圖片和頂端橫幅會變成互動式,並在輕觸時叫用指定動作。

修改訊息外觀和風格

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
資訊卡
動態視窗
橫幅
ImageOnly

修改訊息顯示的算繪程式碼

請注意訊息類型限制,然後隨意修改。您可以建立顯示在應用程式底部的橫幅、在模式上移動動作按鈕、將應用程式內訊息嵌入使用者的動態消息,或進行任何其他修改,讓訊息的外觀和風格符合應用程式。

修改訊息顯示方式時,請注意以下兩點:

修改偏好訊息類型目錄中的檔案,以及 .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 In-App Messaging 知道要使用您的程式庫來算繪訊息:

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance