C++ でダイナミック リンクを受信する

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

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

始める前に

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

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

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

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

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

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

iOS では、Firebase Dynamic Links の C++ クライアント ライブラリはカスタム URL スキームを使用してリンクを処理します。ダイナミック リンクの受信に対応したアプリにするには、カスタム 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])で確認できます。

ダイナミック リンクを受信する

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

受信したダイナミック リンクを確認するには、まず 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"));

リスナーを実装してダイナミック リンクを確認する

受信したダイナミック リンクを確認するには、firebase::dynamic_links::Listener クラスを実装して使用します。

ダイナミック リンクを受信するヘッダー ファイルを追加します。

#include "firebase/dynamic_links.h"

Dynamic Links ライブラリを初期化します。

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

firebase::dynamic_links::Listener を実装するオブジェクトを作成し、SetListener() を使って Dynamic Links ライブラリにそのオブジェクトを渡すか、初期化の 2 番目の引数としてそのオブジェクトを渡します。

ダイナミック リンクを受信するには、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());
  }
};

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。