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

Firebase 應用程式內通訊提供一組實用的預先設定行為和訊息類型,具有預設外觀和風格,不過在某些情況下,您可能會想擴充行為和訊息內容。應用程式內通訊可讓您為訊息新增動作,並自訂訊息的外觀和風格。

在訊息中加入動作

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

Firebase 應用程式內通訊會使用連結處理常式來處理動作。SDK 可以使用多個處理常式,因此如果您的應用程式已設有處理常式,Firebase 應用程式內通訊功能不需要進一步設定。如果您還沒有處理常式,可以使用 Firebase Dynamic Links。詳情請參閱「在 iOS 建立 Dynamic Links」一文。

使用 Firebase 控制台在訊息中新增動作

應用程式有連結處理常式後,您就可以使用動作組合廣告活動。請開啟 Firebase 控制台的「訊息傳遞」,然後啟動新的廣告活動或編輯現有廣告活動。在該廣告活動中,提供資訊卡按鈕文字按鈕動作圖片動作橫幅動作,其中動作是相關的深層連結。

動作的格式取決於您選擇的訊息版面配置。強制回應功能會提供動作按鈕,以及可自訂的按鈕文字內容、文字顏色和背景顏色。另一方面,圖片和頂端橫幅則會在輕觸時變成互動式,並叫用指定動作。

修改郵件的外觀和風格

Firebase 應用程式內通訊可讓您自訂訊息顯示方式,變更應用程式的訊息版面配置、字型樣式、按鈕形狀和其他詳細資料。修改訊息顯示方式有兩種:修改預設的 Firebase 應用程式內通訊顯示方式,或從頭開始建立自己的訊息顯示程式庫。

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

修改預設顯示方式

自訂訊息最簡便的方法,就是以 Firebase 應用程式內通訊的預設訊息顯示程式碼為基礎。

複製 firebase-ios-sdk 存放區

如要開始使用,請複製 firebase-ios-sdk 存放區的最新版本,然後開啟 InAppMessaging 目錄

選取要修改的訊息類型

複製存放區後,您可以修改任何或所有的 Firebase 應用程式內通訊訊息類型:CardModalBannerImageOnly。每種類型都會對應到 Firebase 應用程式內通訊廣告活動建立流程中的訊息版面配置。

因此,每種類型都能存取不同的資料組合,這取決於 Firebase 控制台中的廣告活動自訂選項:

類型 標題文字 內文 文字顏色 背景顏色 圖片資料 動作按鈕 次要動作按鈕
資訊卡
動態視窗
橫幅
僅限圖片

修改訊息顯示程式碼

瞭解訊息類型限制後,您可以隨心所欲修改這些限制。您可以建立顯示於應用程式底部的橫幅、在互動視窗中的動作按鈕周圍移動、將應用程式內訊息嵌入使用者的動態消息,或是進行其他修改,打造符合應用程式風格的訊息。

修改郵件顯示時,請特別注意兩件事:

修改偏好訊息類型目錄中的檔案,以及 .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 程式庫來建立顯示訊息的 UI。此外,您也可以從頭開始編寫自己的程式碼。

建構實作 InAppMessagingDisplay 通訊協定的類別

Firebase 應用程式內通訊會使用 InAppMessaging 類別來處理 Firebase 伺服器和應用程式之間的通訊。該類別接著使用 InAppMessagingDisplay 通訊協定來顯示收到的訊息。如要建構自己的顯示程式庫,請編寫會實作通訊協定的類別。

如需通訊協定定義和遵循方式的說明文件,請前往 InAppMessaging 程式庫的 FIRInAppMessagingDisplay.h 檔案。

設定 messageDisplayComponent 以使用訊息顯示程式庫

InAppMessaging 會根據其 messageDisplayComponent 屬性判斷顯示訊息時要使用的物件。請將該屬性設為自訂訊息顯示類別的物件,讓 Firebase 應用程式內通訊知道要使用程式庫轉譯訊息:

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance