Odbieraj linki dynamiczne w C++

Aby otrzymywać Firebase Dynamic Links, które utworzyłeś, musisz dołączyć pakiet SDK Dynamic Links do swojej aplikacji i utworzyć firebase::dynamic_links::Listener obiekt, który implementuje OnDynamicLinkReceived funkcję wirtualną.

Pakiet C++ SDK działa zarówno na Androidzie, jak i iOS, ale w przypadku każdej platformy wymagana jest dodatkowa konfiguracja.

Zanim zaczniesz

Zanim zaczniesz korzystać z Firebase Dynamic Links, musisz:

  • zarejestrować projekt C++ i skonfigurować go pod kątem używania Firebase.

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

  • dodać pakiet Firebase C++ SDK do projektu C++.

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

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

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

  1. Aby otworzyć konfigurację projektu, kliknij dwukrotnie nazwę projektu w lewym widoku drzewa.

  2. W sekcji TARGETS (Miejsca docelowe) wybierz swoją aplikację, a następnie kliknij kartę Info (Informacje) i 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 konfiguracyjny GoogleService-Info.plist, a następnie poszukaj klucza REVERSED_CLIENT_ID.

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

    3. Pozostaw pozostałe pola 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 URL Schemes (Schematy adresów URL).

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

Odbieranie Dynamic Link

Tworzenie i inicjowanie aplikacji

Zanim zaczniesz sprawdzać, czy zostały odebrane Dynamic Links, musisz utworzyć i zainicjować obiekt firebase::App.

Dołącz plik nagłówkowy firebase::App:

#include "firebase/app.h"

Następna część zależy od platformy:

Android

Utwórz firebase::App, przekazując środowisko JNI i odwołanie jobject do działania 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 został odebrany Dynamic Link, zaimplementuj i użyj klasy firebase::dynamic_links::Listener.

Dołącz plik nagłówkowy do odbierania Dynamic Links:

#include "firebase/dynamic_links.h"

Zainicjuj bibliotekę Dynamic Links:

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

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

Aby odbierać Dynamic Links, klasa detektora musi implementować OnDynamicLinkReceived funkcję wirtualną. Zastępując tę metodę, możesz otrzymać precyzyjny link, jeśli został 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());
  }
};