Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Otrzymuj dynamiczne linki za pomocą C++

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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

C++ SDK działa zarówno dla systemu Android, jak i iOS, z dodatkową konfiguracją wymaganą dla każdej platformy.

Zanim zaczniesz

Aby móc korzystać z Linków dynamicznych Firebase , musisz:

  • Zarejestruj swój projekt C++ i skonfiguruj go do 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 Firebase C++ SDK do projektu C++.

Pamiętaj, że dodanie Firebase do projektu C++ obejmuje zadania zarówno w konsoli Firebase , jak i w otwartym projekcie C++ (na przykład pobierasz pliki konfiguracyjne Firebase z konsoli, a następnie przenosisz je do projektu C++).

Dodaj niestandardowe schematy adresów URL (tylko dla iOS)

Biblioteka klienta Firebase Dynamic Links C++ korzysta z niestandardowych schematów adresów URL w systemie iOS do przetwarzania linków. Musisz dodać do swojej aplikacji niestandardowe schematy adresów URL, aby obsługiwać otrzymywanie linków dynamicznych.

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

  2. Wybierz swoją aplikację z sekcji CELE , następnie wybierz kartę Informacje , a następnie rozwiń sekcję Typy 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 konfiguracyjny GoogleService-Info.plist , a następnie poszukaj klucza REVERSED_CLIENT_ID .

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

    3. Pozostałe pola pozostaw puste.

  4. Kliknij przycisk + , a następnie dodaj drugi schemat adresu URL. Ten jest taki sam jak identyfikator pakietu Twojej aplikacji.

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

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

Otrzymywanie łącza dynamicznego

Utwórz i zainicjuj aplikację

Zanim będziesz mógł sprawdzić otrzymane linki dynamiczne, musisz utworzyć i zainicjować obiekt firebase::App .

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

#include "firebase/app.h"

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

Android

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

Zaimplementuj Listener, aby sprawdzić linki dynamiczne

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

Dołącz plik nagłówkowy do otrzymywania linków dynamicznych:

#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ż jako drugi argument do Initialize .

Aby otrzymywać Dynamic Links, klasa Listener musi zaimplementować funkcję wirtualną OnDynamicLinkReceived . Zastępując tę ​​metodę, możesz otrzymać precyzyjny link, jeśli taki 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());
  }
};