Odbieraj linki dynamiczne w C++

Aby otrzymywać Firebase Dynamic Links, które utworzysz, 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 w przypadku każdej platformy 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 Firebase.

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

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

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

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

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

  2. W sekcji MIEJSCA DOCELOWE wybierz aplikację, a potem kliknij kartę Informacje i rozwiń sekcję Typy adresów URL.

  3. Kliknij przycisk +, a potem dodaj schemat 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 URL na stronie konfiguracji.

    3. Pozostałe pola pozostaw puste.

  4. Kliknij przycisk +, a potem dodaj drugi schemat 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 URL.

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

Otrzymywanie Dynamic Link

Tworzenie i inicjowanie aplikacji

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

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

#include "firebase/app.h"

Dalsza część procesu 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"));

Zaimplementuj odbiornik, aby sprawdzić, czy występuje Dynamic Links

Aby sprawdzić, czy otrzymano 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 funkcji Initialize.

Aby otrzymać Dynamic Links, klasa Listener musi implementować funkcję wirtualną OnDynamicLinkReceived. Zastępując tę 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());
  }
};