C++ で Dynamic Links を受信する

作成した Firebase Dynamic Links を受信するには、アプリに Dynamic Links SDK を組み込み、OnDynamicLinkReceived 仮想関数を実装する firebase::dynamic_links::Listener オブジェクトを作成する必要があります。

Android と iOS それぞれに必要な設定を追加すれば、両方のプラットフォームで C++ SDK を機能させることができます。

始める前に

Firebase Dynamic Links を使用するには、次の作業が必要です。

  • C++ プロジェクトを登録して Firebase を使用するように構成します。

    C++ プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。

  • Firebase C++ SDK を C++ プロジェクトに追加します。

Firebase を C++ プロジェクトに追加するには、Firebase コンソールと開いている C++ プロジェクトの両方でこのタスクを行う必要があります(コンソールから Firebase 構成ファイルをダウンロードして C++ プロジェクトに移動するなど)。

カスタム URL スキームを追加する(iOS のみ)

iOS では、Firebase Dynamic Links C++ クライアント ライブラリはカスタム URL スキームを使用してリンクを処理します。Dynamic Links の受信に対応したアプリにするには、カスタム URL スキームをアプリに追加する必要があります。

  1. 左側のツリービューでプロジェクト名をダブルクリックしてプロジェクト構成を開きます。

  2. [ターゲット] セクションでアプリを選択し、[情報] タブを選択して [URL タイプ] セクションを展開します。

  3. [+] ボタンをクリックし、反転クライアント ID の URL スキームを追加します。この値を確認する手順は次のとおりです。

    1. GoogleService-Info.plist 構成ファイルを開いて REVERSED_CLIENT_ID キーを探します。

    2. 見つかったキーの値をコピーし、構成ページの [URL スキーム] ボックスに貼り付けます。

    3. その他の入力欄は空白にしておきます。

  4. [+] ボタンをクリックし、2 個目の URL スキームを追加します。これはアプリのバンドル ID と同じです。

    たとえば、バンドル ID が com.example.ios であれば、その値を [URL スキーム] ボックスに入力します。

    アプリのバンドル ID はプロジェクト構成の [全般] タブ([ID] > [バンドル ID])で確認できます。

Dynamic Link の受信

アプリを作成して初期化する

受信した Dynamic Links を確認するには、まず firebase::App オブジェクトを作成して初期化しておく必要があります。

firebase::App のヘッダー ファイルを追加します。

#include "firebase/app.h"

この次の手順はプラットフォームによって異なります。

Android

firebase::App を作成し、引数として JNI 環境と jobject 参照を Java アクティビティに渡します。

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 の 2 番目の引数としてそのオブジェクトを渡します。

Dynamic Links を受信するには、リスナー クラスで 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());
  }
};