Crea link dinamici con C++

Puoi creare brevi o lunghi Dynamic Links con l'API Firebase Dynamic Links. L'API accetta diverse strutture di parametri facoltativi per creare i link. I link brevi possono essere creati anche da un link lungo generato in precedenza. Firebase Dynamic Links genera un URL simile al seguente:

https://example.page.link/WXYZ

L'SDK C++ funziona sia per Android sia per iOS, con alcune configurazioni aggiuntive richieste per ogni piattaforma.d

Prima di iniziare

Prima di poter utilizzare Firebase Dynamic Links, devi:

  • Registrare il progetto C++ e configurarlo per l'utilizzo di Firebase.

    Se il tuo progetto C++ utilizza già Firebase, è già registrato e configurato per Firebase.

  • Aggiungere l'Firebase C++ SDK al progetto C++.

Tieni presente che l'aggiunta di Firebase al progetto C++ comporta attività sia nella Firebase console sia nel progetto C++ aperto (ad esempio, scarichi i file di configurazione di Firebase dalla console, quindi li sposti nel progetto C++).

Android

  1. Nella Firebase console, apri la sezione Dynamic Links.
  2. Se non hai ancora accettato i Termini di servizio e impostato un prefisso URI per i tuoi Dynamic Links, fallo quando ti viene richiesto.

    Se hai già un prefisso URI Dynamic Links, prendine nota. Devi fornire un prefisso URI Dynamic Links quando crei Dynamic Links a livello di programmazione.

  3. Consigliato: specifica i pattern URL consentiti nei link diretti e nei link di fallback. In questo modo, impedisci a terze parti non autorizzate di creare Dynamic Links che reindirizzano dal tuo dominio a siti che non controlli. Consulta Consentire pattern URL specifici.

iOS

  1. Nella Firebase console, apri la sezione Dynamic Links.
  2. Se non hai ancora accettato i Termini di servizio e impostato un prefisso URI per i tuoi Dynamic Links, fallo quando ti viene richiesto.

    Se hai già un prefisso URI Dynamic Links, prendine nota. Devi fornire un Dynamic Links dominio quando crei Dynamic Links a livello di programmazione.

  3. La libreria client C++ Firebase Dynamic Links utilizza schemi URL personalizzati su iOS per elaborare i link. Devi aggiungere schemi URL personalizzati alla tua app per supportare la ricezione di Dynamic Links:
    1. Per aprire la configurazione del progetto, fai doppio clic sul nome del progetto nella visualizzazione ad albero a sinistra. Seleziona la tua app dalla sezione TARGETS , quindi seleziona la scheda Info ed espandi la sezione URL Types.
    2. Fai clic sul pulsante + e aggiungi uno schema URL per l'ID client invertito. Per trovare questo valore, apri il file di GoogleService-Info.plist configurazione e cerca la chiave REVERSED_CLIENT_ID. Copia il valore di questa chiave e incollalo nella casella URL Schemes nella pagina di configurazione. Lascia vuoti gli altri campi.
    3. Fai clic sul pulsante + e aggiungi un secondo schema URL. Questo è uguale all'ID pacchetto della tua app. Ad esempio, se l'ID pacchetto è com.example.ios, digita questo valore nella casella URL Schemes. Puoi trovare l'ID pacchetto della tua app nella scheda General della configurazione del progetto (Identity > Bundle Identifier).

Utilizzare la Firebase console

Se vuoi generare un singolo Dynamic Link, per scopi di test o per consentire al tuo team di marketing di creare facilmente un link da utilizzare, ad esempio, in un post sui social media, il modo più semplice sarebbe visitare la Firebase console e crearne uno manualmente seguendo il modulo passo passo.

Domini personalizzati

Puoi avere un maggiore controllo sul branding del tuo Dynamic Link's utilizzando il tuo dominio anziché un goo.gl o page.link sottodominio. Segui queste istruzioni per configurare un dominio personalizzato per il tuo progetto.

Utilizzare l'API Firebase Dynamic Links

Creare e inizializzare l'app

Prima di poter creare Dynamic Links, devi creare e inizializzare un firebase::App oggetto.

Includi il file di intestazione per firebase::App:

#include "firebase/app.h"

La parte successiva varia a seconda della piattaforma:

Android

Crea firebase::App, passando l'ambiente JNI e un riferimento jobject all'attività Java come argomenti:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

Crea firebase::App:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

Inizializzare la libreria Dynamic Links

Prima di creare un Dynamic Link, devi prima inizializzare la libreria Dynamic Links:

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

Creare un Dynamic Link lungo dai parametri

Per creare un Dynamic Link, crea un oggetto DynamicLinkComponents, imposta uno qualsiasi dei membri facoltativi per la configurazione aggiuntiva e passalo a dynamic_links::GetShortLink o dynamic_links::GetLongLink.

L'esempio minimo seguente crea un Dynamic Link lungo a https://www.example.com/ che si apre con l'app per Android com.example.android.package_name e l'app per 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);

Creare un breve Dynamic Link

Per creare un Dynamic Link breve, passa un link lungo generato in precedenza a GetShortLink o crea DynamicLinkComponents nello stesso modo descritto sopra.

GetShortLink accetta facoltativamente un parametro di configurazione DynamicLinkOptions aggiuntivo con PathLength; in questo modo puoi controllare la modalità di generazione del link. La generazione di un link breve richiede una richiesta di rete al backend di Firebase , quindi GetShortLink è asincrono e restituisce un Future<GeneratedLink>.

Ad esempio:

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);

Se il tuo programma ha un loop di aggiornamento che viene eseguito regolarmente (ad esempio 30 o 60 volte al secondo), puoi controllare i risultati una volta per aggiornamento:

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());
  }
}