Odbieraj linki dynamiczne w C++

Aby otrzymywać utworzoną przez siebie wartość Firebase Dynamic Links, musisz uwzględnić w aplikacji pakiet SDK Dynamic Links i utworzyć obiekt firebase::dynamic_links::Listener, który implementuje funkcję wirtualną OnDynamicLinkReceived.

Pakiet SDK C++ działa zarówno na Androidzie, jak i na iOS, ale na każdej z tych platform wymaga dodatkowej konfiguracji.

Zanim zaczniesz

Zanim zaczniesz korzystać z Firebase Dynamic Links, musisz:

  • Zarejestruj projekt C++ i skonfiguruj go pod kątem używania Firebase.

    Jeśli Twój projekt w C++ korzysta już z Firebase, jest już zarejestrowany i skonfigurowany pod kątem tej usługi.

  • Dodaj pakiet SDK Firebase C++ do projektu C++.

Dodawanie Firebase do projektu C++ wymaga wykonania zadań zarówno w konsoliFirebase, jak i w otwartym projekcie C++ (np. pobieranie plików konfiguracji Firebase z konsoli i przenoszenie ich do projektu C++).

Dodawanie niestandardowych schematów adresów URL (tylko iOS)

Biblioteka klienta Firebase Dynamic Links w języku C++ używa niestandardowych schematów adresów URL w iOS do przetwarzania linków. Aby obsługiwać otrzymywanie adresów Dynamic Links, musisz dodać do aplikacji niestandardowe schematy adresów URL.

  1. Aby otworzyć konfigurację projektu, kliknij dwukrotnie jego nazwę w panelu drzewa po lewej stronie.

  2. W sekcji CELE wybierz swoją aplikację, a potem kliknij kolejno karty InformacjeTypy adresów URL.

  3. Kliknij przycisk +, a następnie dodaj schemat adresu URL dla odwróconego identyfikatora klienta. Aby znaleźć tę wartość:

    1. Otwórz plik konfiguracji GoogleService-Info.plist i odszukaj klucz REVERSED_CLIENT_ID.

    2. Skopiuj wartość tego klucza, a potem wklej ją w polu Schematy URL na stronie konfiguracji.

    3. Pozostałe pola pozostaw puste.

  4. Kliknij przycisk +, a potem dodaj drugi schemat adresu URL. Jest to identyfikator pakietu Twojej aplikacji.

    Jeśli na przykład identyfikator pakietu to com.example.ios, wpisz tę wartość w polu Schematy URL.

    Identyfikator pakietu aplikacji znajdziesz na karcie Ogólne w konfiguracji projektu (Tożsamość > Identyfikator pakietu).

Odbieram Dynamic Link

Tworzenie i inicjowanie aplikacji

Zanim sprawdzisz, czy Dynamic Links została odebrana, musisz utworzyć i inicjializować obiekt firebase::App.

Dołącz plik nagłówka dla firebase::App:

#include "firebase/app.h"

Kolejna część zależy od platformy:

Android

Utwórz obiekt firebase::App, przekazując jako argumenty środowisko JNI i odniesienie do aktywności w języku Java:jobject

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

Utwórz firebase::App:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

Zaimplementuj listenera, aby sprawdzić, czy Dynamic Links

Aby sprawdzić, czy Dynamic Link została odebrana, zaimplementuj i użyj klasy firebase::dynamic_links::Listener.

Dołącz plik nagłówka do odbioru Dynamic Links:

#include "firebase/dynamic_links.h"

Zainicjuj bibliotekę Dynamic Links:

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

Utwórz obiekt, który implementuje interfejs firebase::dynamic_links::Listener, i przekaż go do biblioteki Dynamic Links za pomocą funkcji SetListener() lub prześlij go jako drugi argument funkcji Initialize.

Aby otrzymywać Dynamic Links, klasa Listener musi implementować funkcję wirtualną OnDynamicLinkReceived. Po zastąpieniu metody możesz otrzymać precyzyjny link, jeśli został on otrzymany.

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());
  }
};