Odbieraj linki dynamiczne w C++

Aby otrzymać utworzone linki dynamiczne Firebase, musisz umieścić w aplikacji pakiet SDK Linków dynamicznych i utworzyć obiekt firebase::dynamic_links::Listener, który implementuje funkcję wirtualną OnDynamicLinkReceived.

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

Zanim zaczniesz

Zanim użyjesz Linków dynamicznych Firebase, musisz wykonać te czynności:

  • Zarejestruj swój projekt C++ i skonfiguruj go pod kątem korzystania z Firebase.

    Jeśli Twój projekt C++ korzysta już z Firebase, oznacza to, że jest już zarejestrowany i skonfigurowany dla Firebase.

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

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

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

Biblioteka klienta linków dynamicznych Firebase w C++ przetwarza linki przy użyciu niestandardowych schematów adresów URL w iOS. Aby obsługiwać odbieranie linków dynamicznych, musisz dodać do swojej aplikacji niestandardowe schematy adresów URL.

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

  2. Wybierz aplikację w sekcji CELE, następnie na karcie Informacje rozwiń sekcję Typy adresów URL.

  3. Kliknij przycisk + i dodaj schemat adresu URL dla odwrotnego identyfikatora klienta. Aby znaleźć tę wartość:

    1. Otwórz plik konfiguracji GoogleService-Info.plist i poszukaj klucza 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 + i dodaj drugi schemat adresu URL. Jest taki sam jak identyfikator pakietu aplikacji.

    Jeśli np. identyfikator grupy to com.example.ios, wpisz tę wartość w polu Schematy adresów URL.

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

Odbieranie linku dynamicznego

Utwórz i zainicjuj aplikację

Aby sprawdzić otrzymane linki dynamiczne, musisz utworzyć i zainicjować obiekt firebase::App.

Uwzględnij plik nagłówka firebase::App:

#include "firebase/app.h"

Kolejna część zależy od platformy:

Android

Utwórz firebase::App, przekazując środowisko JNI i jobjectodwołanie 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"));

Implementacja detektora w celu sprawdzania linków dynamicznych

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

Dołącz plik nagłówka do odbierania linków dynamicznych:

#include "firebase/dynamic_links.h"

Zainicjuj bibliotekę linków dynamicznych:

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

Utwórz obiekt, który implementuje firebase::dynamic_links::Listener, i przekaż go do biblioteki linków dynamicznych za pomocą SetListener() lub jako drugi argument na potrzeby inicjowania.

Aby otrzymywać linki dynamiczne, klasa detektora musi implementować funkcję wirtualną OnDynamicLinkReceived. Jeśli zastąpisz tę metodę, możesz otrzymać precyzyjny link (o ile 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());
  }
};