Puoi creare link dinamici brevi o lunghi con l'API Firebase Dynamic Links Builder. Questa API accetta un link dinamico lungo o un oggetto contenente parametri di link dinamico e restituisce URL come gli esempi riportati di seguito:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Configura Firebase e l'SDK di Dynamic Links
Prima di poter creare link dinamici nella tua app per Android, devi includere l'SDK Firebase. Se la tua app è configurata per ricevere i link dinamici, hai già completato questi passaggi e puoi saltare questa sezione.
Installa e inizializza gli SDK Firebase per Flutter, se non l'hai ancora fatto.
Dalla directory principale del progetto Flutter, esegui il seguente comando per installare il plug-in Dynamic Links:
flutter pub add firebase_dynamic_links
Se stai creando un'app per Android, apri la pagina Impostazioni progetto della Console Firebase e assicurati di aver specificato la chiave di firma SHA-1. Se utilizzi Link per app, specifica anche la chiave SHA-256.
Nella console Firebase, apri la sezione Dynamic Links.
Se non hai ancora configurato un dominio per i tuoi link dinamici, fai clic sul pulsante Inizia e segui le istruzioni.
Se hai già un dominio Dynamic Links, prendine nota. Devi fornire un dominio Dynamic Links quando crei i link dinamici a livello di programmazione.
Consigliato: dal menu "Altro" (⋮), specifica i pattern URL consentiti nei link diretti e di fallback. In questo modo, impedisci a terze parti non autorizzate di creare Dynamic Link che reindirizzino dal tuo dominio a siti che non controlli. Consulta Consentire pattern di URL specifici.
Creare un link dinamico dai parametri
Per creare un link dinamico, crea un nuovo oggetto DynamicLinkParameters
e passalo a
buildLink()
o buildShortLink()
.
Il seguente esempio minimo crea un link dinamico lungo a https://www.example.com/
che si apre con com.example.app.android
su Android e con l'app com.example.app.ios
su iOS:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
Per creare un link dinamico breve, passa l'oggetto DynamicLinkParameters
a
buildShortLink()
. La creazione del link breve richiede una chiamata di rete.
Ad esempio:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Per impostazione predefinita, i link dinamici brevi vengono generati con suffissi di pochi caratteri. Sebbene questo renda i link più compatti, introduce anche la possibilità che qualcuno possa indovinare un link breve valido. Spesso, non c'è nessun male se qualcuno lo fa, perché il link rimanda a informazioni pubbliche.
Tuttavia, se i tuoi link brevi rimandano a informazioni specifiche per l'utente, devi creare link più lunghi con suffissi di 17 caratteri che rendono molto improbabile che qualcuno possa indovinare un link dinamico valido. Per farlo, passa ShortDynamicLinkType.unguessable
al metodo buildShortLink()
:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
Parametri di Dynamic Link
Puoi utilizzare l'API Dynamic Link Builder per creare collegamenti dinamici con uno qualsiasi dei parametri supportati. Consulta il riferimento API.
L'esempio seguente crea un link dinamico con diversi parametri comuni impostati:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Puoi impostare i parametri di Dynamic Link con i seguenti metodi:
Parametri DynamicLink | |
---|---|
setLink | Il link che aprirà l'app. Specifica un URL che la tua app può gestire, solitamente i contenuti o il payload dell'app, che avvia la logica specifica dell'app (ad esempio l'accreditamento di un coupon all'utente o la visualizzazione di una schermata di benvenuto). Questo link deve essere un URL ben formattato, codificato correttamente, utilizzare HTTP o HTTPS e non può essere un altro link dinamico. |
setDomainUriPrefix | Il prefisso dell'URL del link dinamico, che puoi trovare nella console di Firebase. Un
dominio di link dinamico è simile ai seguenti esempi:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | Il link da aprire quando l'app non è installata. Specifica questo valore per eseguire un'azione diversa dall'installazione della tua app dal Play Store quando l'app non è installata, ad esempio aprire la versione web mobile dei contenuti o visualizzare una pagina promozionale per la tua app. |
setMinimumVersion | Il versionCode della versione minima della tua app che può aprire il link. Se l'app installata è una versione precedente, l'utente viene indirizzato al Play Store per eseguire l'upgrade dell'app. |
IosParameters | |
---|---|
setAppStoreId | L'ID App Store della tua app, utilizzato per indirizzare gli utenti all'App Store quando l'app non è installata |
setFallbackUrl | Il link da aprire quando l'app non è installata. Specifica questo valore per eseguire un'azione diversa dall'installazione della tua app dall'App Store quando l'app non è installata, ad esempio aprire la versione web mobile dei contenuti o mostrare una pagina promozionale per la tua app. |
setCustomScheme | Lo schema URL personalizzato dell'app, se definito come diverso dall'ID gruppo dell'app |
setIpadFallbackUrl | Il link da aprire sugli iPad quando l'app non è installata. Specifica questo valore per eseguire un'azione diversa dall'installazione dell'app dall'App Store quando l'app non è installata, ad esempio aprire la versione web dei contenuti o visualizzare una pagina promozionale per l'app. |
setIpadBundleId | L'ID bundle dell'app per iOS da utilizzare sugli iPad per aprire il link. L'app debe essere collegata al progetto dalla pagina Panoramica della Console Firebase. |
setMinimumVersion | Il numero di versione minima della tua app che può aprire il link. Questo flag viene passato all'app quando viene aperta e l'app deve decidere cosa farne. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | Se impostato su "1", salta la pagina di anteprima dell'app quando viene aperto il link dinamico e reindirizza all'app o al negozio. La pagina di anteprima dell'app (abilitata per impostazione predefinita) può indirizzare gli utenti in modo più affidabile alla destinazione più appropriata quando aprono i link dinamici nelle app. Tuttavia, se prevedi che un link dinamico venga aperto solo nelle app che possono aprire link dinamici in modo affidabile senza questa pagina, puoi disattivarla con questo parametro. Questo parametro influisce sul comportamento del link dinamico solo su iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | Il titolo da utilizzare quando il link dinamico viene condiviso in un post social. |
setDescription | La descrizione da utilizzare quando il link dinamico viene condiviso in un post social. |
setImageUrl | L'URL di un'immagine correlata a questo link. L'immagine deve avere dimensioni minime di almeno 300 x 200 px e non deve superare i 300 KB. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Parametri di Dati di Google Play. Questi parametri (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) vengono trasmessi al Play Store e aggiunti al payload del link. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
Parametri di analisi di iTunes Connect. Questi parametri ("pt", "at", "ct") vengono trasmessi all'App Store. |