콘솔로 이동

C++로 동적 링크 수신

직접 생성한 Firebase 동적 링크를 수신하려면 앱에 동적 링크 SDK를 포함하고 OnDynamicLinkReceived 가상 함수를 구현하는 firebase::dynamic_links::Listener 객체를 만들어야 합니다.

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

시작하기 전에

Firebase 동적 링크를 사용하려면 먼저 다음 작업을 해야 합니다.

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

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

  • 프로젝트 수준 build.gradle 파일의 buildscriptallprojects 섹션에 Google의 Maven 저장소가 포함되어야 합니다.

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

C++ 프로젝트에 Firebase를 추가할 때 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와 동일합니다.

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

    앱의 번들 ID는 프로젝트 구성의 General 탭에서 찾을 수 있습니다(Identity > Bundle Identifier).

동적 링크 수신

앱 만들기 및 초기화

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

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

#include "firebase/app.h"

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

Android

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

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()를 사용하여 동적 링크 라이브러리에 제공하거나 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());
  }
};