Firebase 應用程式內訊息提供一組實用的預先設定行為和訊息類型,並採用預設外觀和風格,但在某些情況下,您可能需要擴充行為和訊息內容。應用程式內訊息功能可讓您在訊息中加入動作,並自訂訊息的外觀和風格。
在訊息中加入動作
您可以透過動作,使用應用程式內訊息將使用者導向網站或應用程式中的特定畫面。
導入深層連結處理常式
Firebase In-App Messaging 會使用連結處理常式來處理動作。SDK 可使用多個處理常式,因此如果應用程式已有處理常式,Firebase In-App Messaging 就能直接使用,無須進一步設定。如果還沒有處理常式,可以使用 Firebase Dynamic Links。詳情請參閱「在 iOS 上建立 Dynamic Links」。
使用 Firebase 控制台將動作新增至訊息
應用程式具備連結處理常式後,即可建立含有動作的廣告活動。
在 Firebase 控制台中,依序前往 「DevOps & Engagement」(開發運作與參與度) > 「Messaging」(訊息)。
啟動工作流程,設定新廣告活動:
如果這是您的第一個廣告活動:
- 按一下「建立第一個廣告活動」。
- 選取「Firebase 應用程式內訊息」,然後按一下「建立」。
如果您先前已建立廣告活動:
- 在「廣告活動」分頁中,按一下「新增廣告活動」。
- 選取「應用程式內訊息」。
按照畫面上的指示設定廣告活動。
提供資訊卡、按鈕文字和按鈕動作、圖片動作或橫幅動作,其中動作是相關的深層連結。
動作的格式取決於您選擇的訊息版面配置。互動視窗會顯示動作按鈕,按鈕的文字內容、文字顏色和背景顏色皆可自訂。圖片和頂端橫幅則會變成可互動,輕觸時會叫用指定動作。
修改訊息外觀和風格
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 |
|---|---|---|---|---|---|---|---|
| 資訊卡 | |||||||
| 動態視窗 | |||||||
| 橫幅 | |||||||
| ImageOnly |
修改訊息顯示算繪程式碼
只要不違反訊息類型限制,您就能自由修改訊息。您可以建立顯示在應用程式底部的橫幅、移動互動視窗上的動作按鈕、將應用程式內訊息嵌入使用者的動態消息,或進行任何其他修改,讓訊息的外觀和風格符合應用程式。
修改訊息顯示時,請特別注意以下兩點:
- 訊息類型目錄:每種訊息類型都有獨立目錄,內含決定該類型邏輯的檔案:
- Storyboard:
InAppMessaging程式庫也包含.storyboard檔案,可協助定義這三種訊息類型的 UI:
修改偏好訊息類型目錄中的檔案,以及 .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 程式庫,才能建立顯示訊息的 UI。您也可以從頭開始自行編寫程式碼。
建構實作 InAppMessagingDisplay 通訊協定的類別
Firebase In-App Messaging 使用 InAppMessaging 類別處理 Firebase 伺服器與應用程式之間的通訊。該類別會使用 InAppMessagingDisplay 通訊協定顯示收到的訊息。如要建構自己的顯示程式庫,請編寫一個類別來實作協定。
通訊協定定義和遵循方式說明文件,位於 InAppMessaging 程式庫的 FIRInAppMessagingDisplay.h 檔案中。
設定 messageDisplayComponent 以使用訊息顯示程式庫
InAppMessaging 會使用其 messageDisplayComponent 屬性,判斷顯示訊息時要使用哪個物件。將該屬性設為自訂訊息顯示類別的物件,Firebase In-App Messaging 就會知道要使用您的程式庫來顯示訊息:
InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance