Odbieraj linki dynamiczne w C++

Aby otrzymać Firebase Dynamic Links, który został przez Ciebie utworzony, musisz uwzględnić pakiet SDK Dynamic Links w aplikacji 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 tak, aby korzystał z Firebase.

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

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

Pamiętaj, że dodanie Firebase do projektu C++ wymaga wykonania zadań zarówno w konsoli Firebase, jak i w otwartym projekcie C++ (np. pobierasz pliki konfiguracji Firebase z konsoli, a następnie przenosisz je do projektu C++).

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

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

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

  2. Wybierz aplikację w sekcji TARGETS (Cele), kliknij kartę Info (Informacje), a potem rozwiń sekcję URL Types (Typy adresów URL).

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

    1. Otwórz plik konfiguracji GoogleService-Info.plist, a następnie znajdź klucz REVERSED_CLIENT_ID.

    2. Skopiuj wartość tego klucza, a następnie wklej ją w polu Schematy adresów URL na stronie konfiguracji.

    3. Pozostałe pola pozostaw puste.

  4. Kliknij przycisk +, a następnie dodaj drugi schemat URI adresu URL. Jest on taki sam jak identyfikator pakietu aplikacji.

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

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

Odbieranie urządzenia Dynamic Link

Tworzenie i inicjowanie aplikacji

Zanim sprawdzisz, czy otrzymano Dynamic Links, musisz utworzyć i zainicjować obiekt firebase::App.

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

#include "firebase/app.h"

Kolejna część różni się w zależności od platformy:

Android

Utwórz obiekt firebase::App, przekazując środowisko JNI i odwołanie jobject do aktywności Java jako argumenty:

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

iOS

Utwórz firebase::App:

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

Implementowanie detektora do sprawdzania Dynamic Links

Aby sprawdzić, czy otrzymano Dynamic Link, zaimplementuj i użyj klasy firebase::dynamic_links::Listener.

Dołącz plik nagłówka, aby otrzymywać 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ą metody SetListener() lub jako drugi argument metody Initialize.

Aby otrzymywać zdarzenia Dynamic Links, klasa Listener musi implementować funkcję wirtualną OnDynamicLinkReceived. Zastępując metodę, możesz otrzymać precyzyjny link, jeśli został on odebrany.

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