C++로 동적 링크 수신

생성Firebase Dynamic Links를 수신하려면 앱에 Dynamic Links SDK를 포함하고 OnDynamicLinkReceived 가상 함수를 구현하는 firebase::dynamic_links::Listener 객체를 생성해야 합니다.

C++ SDK는 Android 및 iOS와 연동이 가능하며 플랫폼별로 몇 가지 추가 설정이 필요합니다.

시작하기 전에

Firebase Dynamic Links을 사용하려면 먼저 다음 작업을 해야 합니다.

  • C++ 프로젝트를 등록하고 Firebase를 사용하도록 구성합니다.

    C++ 프로젝트에서 현재 Firebase를 사용하고 있다면 이미 등록되어 Firebase용으로 구성된 상태입니다.

  • C++ 프로젝트에 Firebase C++ SDK를 추가합니다.

C++ 프로젝트에 Firebase를 추가할 때 Firebase Console 및 열려 있는 C++ 프로젝트 모두에서 작업을 수행해야 합니다. 예를 들어 Console에서 Firebase 구성 파일을 다운로드한 후 이 파일을 C++ 프로젝트로 옮기는 작업이 필요합니다.

커스텀 URL 스키마 추가(iOS에만 해당)

Firebase Dynamic Links C++ 클라이언트 라이브러리는 iOS의 커스텀 URL 스키마를 사용하여 링크를 처리합니다. Dynamic Links 수신을 지원하려면 앱에 커스텀 URL 스키마를 추가해야 합니다.

  1. 왼쪽 트리 보기에서 프로젝트 이름을 더블클릭하여 프로젝트 구성을 엽니다.

  2. 대상 섹션에서 앱을 선택하고 정보 탭을 선택한 후 URL 유형 섹션을 펼칩니다.

  3. + 버튼을 클릭하고 반전된 클라이언트 ID의 URL 스키마를 추가합니다. 이 값을 찾는 방법은 다음과 같습니다.

    1. GoogleService-Info.plist 구성 파일을 열고 REVERSED_CLIENT_ID 키를 찾습니다.

    2. 이 키의 값을 복사하여 구성 페이지의 URL 스키마 상자에 붙여넣습니다.

    3. 다른 필드는 비워 둡니다.

  4. + 버튼을 클릭하고 두 번째 URL 스키마를 추가합니다. 이 스키마는 앱의 번들 ID와 동일합니다.

    예를 들어 번들 ID가 com.example.ios이면 URL 스키마 상자에 이 값을 입력합니다.

    앱의 번들 ID는 프로젝트 구성의 일반 탭에서 찾을 수 있습니다(ID > 번들 식별자).

Dynamic Link 수신

앱 만들기 및 초기화

수신된 Dynamic Links를 확인하기 전에 firebase::App 객체를 만들고 초기화해야 합니다.

firebase::App의 헤더 파일을 포함합니다.

#include "firebase/app.h"

다음 단계는 플랫폼에 따라 다릅니다.

Android

자바 액티비티에 JNI 환경과 jobject 참조를 인수로 전달하여 firebase::App을 만듭니다.

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를 수신하려면 리스너 클래스가 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());
  }
};