Tworzenie linków dynamicznych w C++

Za pomocą interfejsu API Firebase Dynamic Links możesz tworzyć krótkie lub długie Dynamic Links. Interfejs API korzysta z kilku opcjonalnych struktur parametrów do tworzenia linków. Krótkie linki można też tworzyć z wygenerowanych wcześniej długich linków. Firebase Dynamic Links generuje taki adres URL:

https://example.page.link/WXYZ

Pakiet SDK C++ działa zarówno na Androidzie, jak i na iOS, ale na każdej z tych platform wymaga dodatkowej konfiguracji.

Zanim zaczniesz

Zanim zaczniesz korzystać z Firebase Dynamic Links, musisz:

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

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

  • Dodaj pakiet SDK Firebase C++ do projektu 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++).

Android

  1. W konsoli Firebase otwórz sekcję Dynamic Links.
  2. Jeśli nie zaakceptowałeś(-aś) jeszcze warunków korzystania z usługi i nie ustawiłeś(-aś) prefiksu URI dla usługi Dynamic Links, zrób to, gdy pojawi się taka prośba.

    Jeśli masz już prefiks URI Dynamic Links, zanotuj go. Podczas tworzenia za pomocą kodu Dynamic Links musisz podać prefiks identyfikatora URI Dynamic Links.

  3. Zalecane: określ wzorce adresów URL dopuszczalne w przypadku precyzyjnych linków i linków zastępczych. Dzięki temu uniemożliwisz nieupoważnionym osobom tworzenie Dynamic Links, które przekierowują z Twojej domeny do witryn, nad którymi nie masz kontroli. Zapoznaj się z wzorcami adresów URL na białej liście.

iOS

  1. W konsoli Firebase otwórz sekcję Dynamic Links.
  2. Jeśli nie zaakceptowałeś(-aś) jeszcze warunków korzystania z usługi i nie ustawiłeś(-aś) prefiksu URI dla usługi Dynamic Links, zrób to, gdy pojawi się taka prośba.

    Jeśli masz już prefiks URI Dynamic Links, zanotuj go. Podczas tworzenia za pomocą kodu domeny Dynamic Links musisz podać domenę Dynamic Links.

  3. Biblioteka klienta Firebase Dynamic Links w języku C++ używa niestandardowych schematów URL-i na iOS do przetwarzania linków. Aby obsługiwać otrzymywanie Dynamic Links, musisz dodać do aplikacji niestandardowe schematy adresów URL:
    1. Aby otworzyć konfigurację projektu, kliknij dwukrotnie jego nazwę w widoku drzewa po lewej stronie. Wybierz aplikację w sekcji CELE, następnie na karcie Informacje i rozwiń sekcję Typy adresów URL.
    2. Kliknij przycisk + i dodaj schemat adresu URL dla odwróconego identyfikatora klienta. Aby znaleźć tę wartość, otwórz plik konfiguracji GoogleService-Info.plist i poszukaj klucza REVERSED_CLIENT_ID. Skopiuj wartość tego klucza i wklej ją w polu Schematy adresów URL na stronie konfiguracji. Pozostałe pola pozostaw puste.
    3. Kliknij przycisk + i dodaj drugi schemat adresu URL. Jest 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 konfiguracji projektu (Tożsamość > Identyfikator pakietu).

Korzystanie z konsoli Firebase

Jeśli chcesz wygenerować pojedynczy Dynamic Link na potrzeby testów lub aby umożliwić zespołowi marketingowemu łatwe tworzenie linków do wykorzystania w postach w mediach społecznościowych, najprostszym sposobem jest przejście do konsoli Firebase i ręczne utworzenie linku zgodnie z podanymi instrukcjami.

Domeny niestandardowe

Możesz mieć większą kontrolę nad brandingiem Dynamic Link, używając własnej domeny zamiast domeny podrzędnej goo.gl lub page.link. Wykonaj te instrukcje, aby skonfigurować niestandardową domenę dla swojego projektu.

Korzystanie z interfejsu API Firebase Dynamic Links

Tworzenie i inicjowanie aplikacji

Zanim utworzysz Dynamic Links, musisz utworzyć i inicjializować obiekt firebase::App.

Dołącz plik nagłówka dla 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"));

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 z parametrów

Aby utworzyć Dynamic Link, utwórz obiekt DynamicLinkComponents, ustawiając dowolne opcjonalne elementy na potrzeby dodatkowej konfiguracji, a potem prześlij go do dynamic_links::GetShortLink lub dynamic_links::GetLongLink.

Ten minimalny przykład tworzy długi Dynamic Link do adresu 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 filmu Short Dynamic Link

Aby utworzyć krótki link dynamiczny, prześlij wcześniej wygenerowany długi link do GetShortLink lub utwórz DynamicLinkComponents w taki sam sposób jak powyżej.

Funkcja GetShortLink opcjonalnie wykorzystuje dodatkowy parametr konfiguracyjny DynamicLinkOptions z PathLength. Pozwala to kontrolować sposób generowania połączenia. Wygenerowanie krótkiego linku wymaga żądania sieciowego do backendu Firebase, więc funkcja GetShortLink jest asynchroniczna 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 działa regularnie (np. z częstotliwością 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());
  }
}