Puoi creare Dynamic Links brevi o lunghi 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 che per iOS, con alcune configurazioni aggiuntive richieste per ogni piattaforma.d
Prima di iniziare
Prima di poter utilizzare Firebase Dynamic Links, devi:
Registra il tuo progetto C++ e configuralo in modo che utilizzi Firebase.
Se il tuo progetto C++ utilizza già Firebase, è già registrato e configurato per Firebase.
Aggiungi l'SDK Firebase C++ al tuo progetto C++.
Tieni presente che l'aggiunta di Firebase al tuo progetto C++ comporta attività sia nella Firebase console sia nel progetto C++ aperto (ad esempio, scarichi i file di configurazione Firebase dalla console, poi li sposti nel progetto C++).
- Nella console Firebase, apri la sezione Dynamic Links.
Se non hai ancora accettato i Termini di servizio e impostato un prefisso URI per il tuo 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 in modo programmatico.
- 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.
- Nella console Firebase, apri la sezione Dynamic Links.
Se non hai ancora accettato i Termini di servizio e impostato un prefisso URI per il tuo Dynamic Links, fallo quando ti viene richiesto.
Se hai già un prefisso URI Dynamic Links, prendine nota. Devi fornire un dominio Dynamic Links quando crei Dynamic Links in modo programmatico.
- 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:
- 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 TARGET, poi seleziona la scheda Informazioni ed espandi la sezione Tipi di URL.
- Fai clic sul pulsante + e aggiungi uno schema URL per l'ID client invertito. Per trovare questo valore, apri il file di configurazione
e cerca la chiaveGoogleService-Info.plist REVERSED_CLIENT_ID
. Copia il valore di questa chiave e incollalo nella casella Schemi URL nella pagina di configurazione. Lascia vuoti gli altri campi. - Fai clic sul pulsante + e aggiungi un secondo schema URL. Questo è uguale all'ID bundle della tua app. Ad esempio, se il tuo ID bundle è
com.example.ios
, inserisci questo valore nella casella Schemi URL. Puoi trovare l'ID bundle della tua app nella scheda Generale della configurazione del progetto (Identità > Identificatore bundle).
Utilizzare la console Firebase
Se vuoi generare un singolo Dynamic Link, a scopo 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 è visitare la console Firebase e crearne uno manualmente seguendo il modulo passo passo.
Domini personalizzati
Puoi avere un maggiore controllo sul branding del tuo Dynamic Link utilizzando un tuo dominio anziché un sottodominio goo.gl
o page.link
. Segui queste
istruzioni per configurare un dominio personalizzato per
il tuo progetto.
Utilizzo dell'API Firebase Dynamic Links
Crea e inizializza l'app
Prima di poter creare Dynamic Links, devi creare e inizializzare
un oggetto firebase::App
.
Includi il file di intestazione per firebase::App
:
#include "firebase/app.h"
La parte successiva varia a seconda della piattaforma:
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);
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);
Creazione di un valore lungo Dynamic Link dai parametri
Per creare un link dinamico, crea un oggetto DynamicLinkComponents, impostando uno qualsiasi dei membri facoltativi per la configurazione aggiuntiva e passandolo a dynamic_links::GetShortLink
o dynamic_links::GetLongLink
.
Il seguente esempio minimo crea un link dinamico 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);
Creazione di uno Short Dynamic Link
Per creare un link dinamico 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 come deve essere generato il link. La generazione di un link breve richiede una richiesta di rete al backend di Firebase, pertanto 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 ciclo 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()); } }