如要接收您建立的 Firebase Dynamic Links,您必須在應用程式中加入 Dynamic Links SDK,並建立實作 OnDynamicLinkReceived 虛擬函式的 firebase::dynamic_links::Listener 物件。
C++ SDK 適用於 Android 和 iOS,但每個平台都需要進行一些額外設定。
事前準備
使用 Firebase Dynamic Links 前,請先完成下列事項:
註冊 C++ 專案,並設定使用 Firebase。
如果 C++ 專案已使用 Firebase,代表已註冊並設定 Firebase。
將 Firebase C++ SDK 新增至 C++ 專案。
請注意,將 Firebase 新增至 C++ 專案時,您必須在 Firebase 控制台和開啟的 C++ 專案中執行工作 (例如從控制台下載 Firebase 設定檔,然後移至 C++ 專案)。
新增自訂網址配置 (僅限 iOS)
Firebase Dynamic Links C++ 用戶端程式庫在 iOS 上使用自訂網址配置處理連結。您必須在應用程式中新增自訂網址配置,才能支援接收 Dynamic Links。
如要開啟專案設定,請在左側樹狀檢視中,按兩下專案名稱。
在「TARGETS」部分選取應用程式,然後選取「Info」分頁標籤,接著展開「URL Types」部分。
按一下「+」按鈕,然後為反向用戶端 ID 新增網址配置。如要找出這個值,請按照下列步驟操作:
開啟
設定檔,然後尋找GoogleService-Info.plist REVERSED_CLIENT_ID鍵。複製該鍵的值,然後貼到設定頁面的「URL Schemes」(網址配置) 方塊中。
其他欄位則留空。
按一下「+」按鈕,然後新增第二個網址配置。這個 ID 與應用程式的軟體包 ID 相同。
舉例來說,如果軟體包 ID 是
com.example.ios,請在「URL Schemes」(網址配置) 方塊中輸入該值。您可以在專案設定的「General」分頁中,找到應用程式的軟體包 ID (依序前往「Identity」>「Bundle Identifier」)。
收到Dynamic Link
建立及初始化應用程式
您必須先建立並初始化 firebase::App 物件,才能檢查收到的 Dynamic Links。
加入 firebase::App 的標頭檔案:
#include "firebase/app.h"
接下來的步驟會因平台而異:
Android
建立 firebase::App,並將 JNI 環境和 Java 活動的 jobject 參照做為引數傳遞:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS
建立 firebase::App:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
導入事件監聽器,檢查 Dynamic Links
如要檢查是否收到 Dynamic Link,請實作並使用 firebase::dynamic_links::Listener 類別。
加入用於接收 Dynamic Links 的標頭檔案:
#include "firebase/dynamic_links.h"
初始化 Dynamic Links 程式庫:
::firebase::dynamic_links::Initialize(app, null);
建立實作 firebase::dynamic_links::Listener 的物件,並使用 SetListener() 將其提供給 Dynamic Links 程式庫,或將其做為第二個引數傳遞至 Initialize。
如要接收 Dynamic Links,Listener 類別必須實作 OnDynamicLinkReceived 虛擬函式。覆寫這個方法後,您就能接收深層連結 (如有)。
class Listener : public firebase::dynamic_links::Listener { public: // Called on the client when a dynamic link arrives. void OnDynamicLinkReceived( const firebase::dynamic_links::DynamicLink* dynamic_link) override { printf("Received link: %s", dynamic_link->url.c_str()); } };