Za pomocą interfejsu Firebase Dynamic Links API możesz tworzyć krótkie i długie Dynamic Links. Interfejs API przyjmuje kilka opcjonalnych struktur parametrów do tworzenia linków. Krótkie linki można też tworzyć na podstawie wcześniej wygenerowanego długiego linku. Firebase Dynamic Links generuje adres URL podobny do tego:
https://example.page.link/WXYZ
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++).
Android
- W konsoli Firebase otwórz sekcję Dynamic Links.
Jeśli nie masz jeszcze zaakceptowanych warunków korzystania z usługi i nie masz ustawionego prefiksu URI dla Dynamic Links, zrób to, gdy pojawi się odpowiedni komunikat.
Jeśli masz już prefiks URI Dynamic Links, zanotuj go. Podczas programowego tworzenia Dynamic Links musisz podać prefiks URI Dynamic Links.

- Zalecane: określ wzorce adresów URL dozwolone w precyzyjnych linkach i linkach zastępczych. Dzięki temu uniemożliwisz nieuprawnionym osobom tworzenie Dynamic Links które przekierowują z Twojej domeny do witryn, nad którymi nie masz kontroli. Zobacz Zezwalanie na określone wzorce adresów URL.
iOS
- W konsoli Firebase otwórz sekcję Dynamic Links.
Jeśli nie masz jeszcze zaakceptowanych warunków korzystania z usługi i nie masz ustawionego prefiksu URI dla Dynamic Links, zrób to, gdy pojawi się odpowiedni komunikat.
Jeśli masz już prefiks URI Dynamic Links, zanotuj go. Podczas programowego tworzenia Dynamic Links musisz podać domenę Dynamic Links.

- 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:
- Aby otworzyć konfigurację projektu, kliknij dwukrotnie nazwę projektu w lewym widoku drzewa. W sekcji MIEJSCA DOCELOWE wybierz swoją aplikację, a następnie kliknij kartę Informacje i rozwiń sekcję Typy adresów URL.
- Kliknij przycisk + i dodaj schemat URI adresu URL dla odwróconego identyfikatora klienta. Aby znaleźć tę wartość, otwórz
plik konfiguracyjny i poszukaj kluczaGoogleService-Info.plist REVERSED_CLIENT_ID. Skopiuj wartość tego klucza i wklej ją w polu Schematy adresów URL na stronie konfiguracji. Pozostałe pola pozostaw puste. - Kliknij przycisk + i 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 adresów URL. Identyfikator pakietu aplikacji znajdziesz na karcie Ogólne w konfiguracji projektu (Tożsamość > Identyfikator pakietu).
Korzystanie z konsoli Firebase
Jeśli chcesz wygenerować pojedynczy Dynamic Link, np. na potrzeby testowania lub aby zespół marketingowy mógł łatwo utworzyć link, który można wykorzystać np. w poście w mediach społecznościowych, najprościej będzie otworzyć Firebase konsolę i utworzyć go ręcznie, korzystając z formularza krok po kroku.
Domeny niestandardowe
Możesz mieć większą kontrolę nad brandingiem Dynamic Link, używając własnej
domeny zamiast goo.gl lub page.link subdomeny. Aby skonfigurować domenę niestandardową dla
projektu, postępuj zgodnie z tymi
instrukcjami.
Korzystanie z interfejsu Firebase Dynamic Links API
Tworzenie i inicjowanie aplikacji
Zanim utworzysz 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 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"));
Inicjowanie biblioteki Dynamic Links
Zanim utworzysz Dynamic Link, musisz najpierw zainicjować bibliotekę Dynamic Links:
::firebase::dynamic_links::Initialize(app, null);
Tworzenie długiego Dynamic Link na podstawie parametrów
Aby utworzyć link dynamiczny, utwórz obiekt DynamicLinkComponents, ustawiając dowolne opcjonalne elementy członkowskie w celu dodatkowej konfiguracji, i przekaż go do dynamic_links::GetShortLink lub dynamic_links::GetLongLink.
Poniższy minimalny przykład tworzy długi link dynamiczny do https://www.example.com/, który otwiera się w aplikacji na Androida com.example.android.package_name i aplikacji na iOS com.example.ios:
firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios"); firebase::dynamic_links::AndroidParameters android_parameters( "com.example.android.package_name"); firebase::dynamic_links::DynamicLinkComponents components( "https://www.example.com/", "example.page.link"); components.android_parameters = &android_parameters; components.ios_parameters = &ios_parameters; firebase::dynamic_links::GeneratedDynamicLink long_link = firebase::dynamic_links::GetLongLink(components);
Tworzenie krótkiego Dynamic Link
Aby utworzyć krótki link dynamiczny, przekaż wcześniej wygenerowany długi link do GetShortLink lub utwórz DynamicLinkComponents w taki sam sposób jak powyżej.
GetShortLink opcjonalnie przyjmuje dodatkowy parametr konfiguracji DynamicLinkOptions z PathLength; pozwala to kontrolować sposób generowania linku. Wygenerowanie krótkiego linku wymaga wysłania żądania sieciowego do backendu Firebase
, dlatego GetShortLink jest asynchroniczne i zwraca Future<GeneratedLink>.
Przykład:
firebase::dynamic_links::DynamicLinkOptions short_link_options; short_link_options.path_length = firebase::dynamic_links::kPathLengthShort; firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result = firebase::dynamic_links::GetShortLink(components, short_link_options);
Jeśli Twój program ma pętlę aktualizacji, która jest wykonywana regularnie (np. 30 lub 60 razy na sekundę), możesz sprawdzać wyniki raz na aktualizację:
if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) { firebase::dynamic_links::GeneratedDynamicLink link = *result.result(); printf("Create short link succeeded: %s\n", link.url.c_str()); } else { printf("Created short link failed with error '%s'\n", result.error_message()); } }