Twórz linki dynamiczne w języku C++

Możesz tworzyć krótkie lub długie linki dynamiczne za pomocą interfejsu API Firebase Dynamic Links. Interfejs API wykorzystuje kilka opcjonalnych struktur parametrów do tworzenia łączy. Krótkie linki można również utworzyć z wcześniej wygenerowanego długiego linku. Linki dynamiczne Firebase generują adres URL podobny do następującego:

https://example.page.link/WXYZ

Zestaw SDK C++ działa zarówno na Androidzie, jak i na iOS, a dla każdej platformy wymagana jest dodatkowa konfiguracja.d

Zanim zaczniesz

Zanim będziesz mógł 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 SDK Firebase C++ do swojego 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++).

Android

  1. W konsoli Firebase otwórz sekcję Linki dynamiczne .
  2. Jeśli nie zaakceptowałeś jeszcze warunków korzystania z usługi i nie ustawiłeś prefiksu URI dla swoich łączy dynamicznych, zrób to po wyświetleniu monitu.

    Jeśli masz już prefiks URI łączy dynamicznych, zanotuj go. Podczas programowego tworzenia łączy dynamicznych należy podać przedrostek URI łączy dynamicznych.

  3. Zalecane : określ dozwolone wzorce adresów URL w precyzyjnych linkach i linkach zastępczych. W ten sposób uniemożliwiasz nieupoważnionym osobom tworzenie linków dynamicznych przekierowujących z Twojej domeny do witryn, nad którymi nie masz kontroli. Zobacz listę wzorców adresów URL na białej liście .

iOS

  1. W konsoli Firebase otwórz sekcję Linki dynamiczne .
  2. Jeśli nie zaakceptowałeś jeszcze warunków korzystania z usługi i nie ustawiłeś prefiksu URI dla swoich łączy dynamicznych, zrób to po wyświetleniu monitu.

    Jeśli masz już prefiks URI łączy dynamicznych, zanotuj go. Podczas programowego tworzenia łączy dynamicznych musisz podać domenę łączy dynamicznych.

  3. Biblioteka kliencka Firebase Dynamic Links C++ wykorzystuje niestandardowe schematy adresów URL w systemie iOS do przetwarzania łączy. Aby móc otrzymywać linki dynamiczne, musisz dodać do swojej aplikacji niestandardowe schematy adresów URL:
    1. Aby otworzyć konfigurację projektu, kliknij dwukrotnie nazwę projektu w lewym widoku drzewa. Wybierz swoją aplikację w sekcji CELE , następnie wybierz kartę 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 konfiguracyjny GoogleService-Info.plist i poszukaj klucza REVERSED_CLIENT_ID . Skopiuj wartość tego klucza i wklej go w polu Schematy adresów URL na stronie konfiguracji. Pozostałe pola pozostaw puste.
    3. Kliknij przycisk + i 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 znajdziesz w zakładce Ogólne konfiguracji projektu ( Tożsamość > Identyfikator pakietu ).

Użyj konsoli Firebase

Jeśli chcesz wygenerować pojedynczy link dynamiczny do celów testowych lub aby Twój zespół marketingowy mógł łatwo utworzyć link, który można wykorzystać w postach w mediach społecznościowych, najprostszym sposobem byłoby odwiedzenie konsoli Firebase i utworzenie takiego ręcznie, postępując zgodnie z formularzem krok po kroku.

Domeny niestandardowe

Możesz mieć większą kontrolę nad marką swojego łącza dynamicznego, używając własnej domeny zamiast subdomeny goo.gl lub page.link . Postępuj zgodnie z poniższymi instrukcjami , aby skonfigurować domenę niestandardową dla swojego projektu.

Korzystanie z interfejsu API łączy dynamicznych Firebase

Utwórz i zainicjuj aplikację

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

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

#include "firebase/app.h"

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

Android

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

Zainicjuj bibliotekę łączy dynamicznych

Przed utworzeniem łącza dynamicznego należy najpierw zainicjować bibliotekę łączy dynamicznych:

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

Tworzenie długiego łącza dynamicznego na podstawie parametrów

Aby utworzyć łącze dynamiczne, utwórz obiekt DynamicLinkComponents, ustawiając dowolny z opcjonalnych elementów członkowskich w celu dodatkowej konfiguracji i przekazując 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 łącza dynamicznego

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

GetShortLink opcjonalnie pobiera dodatkowy parametr konfiguracyjny DynamicLinkOptions z PathLength ; pozwala to kontrolować sposób generowania linku. Wygenerowanie krótkiego łącza wymaga żądania sieciowego do zaplecza Firebase, więc GetShortLink jest asynchroniczny i zwraca Future<GeneratedLink> .

Na 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 (powiedzmy 30 lub 60 razy na sekundę), możesz sprawdzić 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());
  }
}