本頁面由 Cloud Translation API 翻譯而成。
Switch to English

使用C ++接收動態鏈接

要接收您創建的Firebase動態鏈接,您必須在應用程序中包括Dynamic Links SDK,並創建實現OnDynamicLinkReceived虛擬功能的OnDynamicLinkReceived firebase::dynamic_links::Listener對象。

C ++ SDK適用於Android和iOS,每個平台都需要一些其他設置。

在你開始之前

在使用Firebase動態鏈接之前 ,您需要:

  • 註冊您的C ++項目並將其配置為使用Firebase。

    如果您的C ++項目已經使用Firebase,則說明它已經為Firebase註冊並配置了。

  • 在項目級別的build.gradle文件中,確保在buildscriptallprojects部分中都包含Google的Maven存儲庫。

  • Firebase C ++ SDK添加到您的C ++項目中。

請注意,將Firebase添加到您的C ++項目中涉及在Firebase控制台和打開的C ++項目中的任務(例如,您從控制台下載Firebase配置文件,然後將其移入C ++項目)。

添加自定義URL方案(僅適用於iOS)

Firebase動態鏈接C ++客戶端庫在iOS上使用自定義URL方案來處理鏈接。您必須將自定義URL方案添加到您的應用程序以支持接收動態鏈接。

  1. 要打開項目配置,請在左樹視圖中雙擊項目名稱。

  2. 從“ 目標”部分中選擇您的應用,然後選擇“ 信息”選項卡,然後展開“ URL類型”部分。

  3. 單擊+按鈕,然後為您的反向客戶端ID添加URL方案。要找到此值:

    1. 打開GoogleService-Info.plist配置文件,然後查找REVERSED_CLIENT_ID密鑰。

    2. 複製該鍵的值,然後將其粘貼到配置頁上的“ URL方案”框中。

    3. 將其他字段留空。

  4. 單擊+按鈕,然後添加第二個URL方案。這個與您應用程式的套件編號相同。

    例如,如果您的捆綁包ID為com.example.ios ,請在“ URL方案”框中鍵入該值。

    您可以在項目配置的“ 常規”選項卡(“ 身份”>“捆綁包標識符” )中找到應用程序的捆綁包ID。

接收動態鏈接

創建並初始化應用

在檢查收到的動態鏈接之前,您需要創建並初始化firebase::App對象。

包括firebase::App的頭文件:

#include "firebase/app.h"

下一部分取決於您的平台:

安卓系統

創建firebase::App ,將JNI環境和對Java Activity的jobject引用作為參數傳遞:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

的iOS

創建firebase::App

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

實施偵聽器以檢查動態鏈接

要檢查是否收到了動態鏈接,請實現並使用firebase::dynamic_links::Listener類。

包括用於接收動態鏈接的頭文件:

#include "firebase/dynamic_links.h"

初始化動態鏈接庫:

::firebase::dynamic_links::Initialize(app, null);

創建一個實現firebase::dynamic_links::Listener的對象,並使用SetListener()將其提供給Dynamic Links庫,或者將其作為第二個參數傳遞給Initialize

若要接收動態鏈接,您的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());
  }
};