作成した 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 スキームをアプリに追加する必要があります。
左側のツリービューでプロジェクト名をダブルクリックしてプロジェクト構成を開きます。
[ターゲット] セクションでアプリを選択し、[情報] タブを選択して [URL タイプ] セクションを展開します。
[+] ボタンをクリックし、反転クライアント ID の URL スキームを追加します。この値を確認する手順は次のとおりです。
構成ファイルを開いてGoogleService-Info.plist REVERSED_CLIENT_ID
キーを探します。見つかったキーの値をコピーし、構成ページの [URL スキーム] ボックスに貼り付けます。
その他の入力欄は空白にしておきます。
[+] ボタンをクリックし、2 個目の URL スキームを追加します。これはアプリのバンドル ID と同じです。
たとえば、バンドル ID が
com.example.ios
であれば、その値を [URL スキーム] ボックスに入力します。アプリのバンドル ID はプロジェクト構成の [全般] タブ([ID] > [バンドル ID])で確認できます。
ダイナミック リンクを受信する
アプリを作成して初期化する
受信した 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 Links を確認するには、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 を受信するには、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()); } };