Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Crea collegamenti dinamici in un'app Flutter

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Puoi creare collegamenti dinamici brevi o lunghi con l'API Firebase Dynamic Links Builder. Questa API accetta un collegamento dinamico lungo o un oggetto contenente parametri di collegamento dinamico e restituisce URL come i seguenti esempi:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

Prima di poter creare collegamenti dinamici nella tua app Android, devi includere l'SDK Firebase. Se la tua app è configurata per ricevere link dinamici, hai già completato questi passaggi e puoi saltare questa sezione.

  1. Installa e inizializza gli SDK Firebase per Flutter se non l'hai già fatto.

  2. Dalla directory principale del tuo progetto Flutter, esegui il seguente comando per installare il plug-in Dynamic Links:

    flutter pub add firebase_dynamic_links
    
  3. Se stai creando un'app Android, apri la pagina delle impostazioni del progetto della console Firebase e assicurati di aver specificato la tua chiave di firma SHA-1. Se utilizzi App Links, specifica anche la tua chiave SHA-256.

  4. Nella console Firebase, apri la sezione Collegamenti dinamici .

    1. Se non hai già impostato un dominio per i tuoi collegamenti dinamici, fai clic sul pulsante Inizia e segui le istruzioni.

      Se hai già un dominio Dynamic Links, prendine nota. È necessario fornire un dominio Collegamenti dinamici quando crei collegamenti dinamici a livello di codice.

    2. Consigliato : dal menu "Altro" (⋮), specifica i pattern URL consentiti nei link diretti e nei link di riserva. In questo modo, impedisci a parti non autorizzate di creare collegamenti dinamici che reindirizzano dal tuo dominio a siti che non controlli.

      Consulta Consenti pattern URL specifici .

Per creare un collegamento dinamico, crea un nuovo oggetto DynamicLinkParameters e passalo a buildLink() o buildShortLink() .

L'esempio minimo seguente crea un collegamento dinamico lungo a https://www.example.com/ che si apre con com.example.app.android su Android e 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 collegamento dinamico breve, passa l'oggetto DynamicLinkParameters a buildShortLink() . La creazione del collegamento breve richiede una chiamata di rete. Per 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 collegamenti dinamici brevi vengono generati con suffissi lunghi solo pochi caratteri. Sebbene ciò renda i collegamenti più compatti, introduce anche la possibilità che qualcuno possa indovinare un collegamento breve valido. Spesso non c'è niente di male se qualcuno lo fa, perché il link porta a informazioni pubbliche.

Tuttavia, se i tuoi collegamenti brevi portano a informazioni specifiche dell'utente, dovresti creare collegamenti più lunghi con suffissi di 17 caratteri che rendono molto improbabile che qualcuno possa indovinare un collegamento dinamico valido. Per fare ciò, passa ShortDynamicLinkType.unguessable al metodo buildShortLink() :

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

Puoi utilizzare l'API Dynamic Link Builder per creare collegamenti dinamici con uno qualsiasi dei parametri supportati. Vedere il riferimento API .

L'esempio seguente crea un collegamento 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);

È possibile impostare i parametri di Dynamic Link con i seguenti metodi:

parametri DynamicLink
setLink Il link che si aprirà la tua app. Specifica un URL che l'app può gestire, in genere il contenuto o il payload dell'app, che avvia la logica specifica dell'app (ad esempio accreditando all'utente un coupon o visualizzando una schermata di benvenuto). Questo collegamento deve essere un URL ben formattato, codificato correttamente nell'URL, utilizzare HTTP o HTTPS e non può essere un altro collegamento dinamico.
setDomainUriPrefix Il tuo prefisso URL Dynamic Link, che puoi trovare nella console Firebase. Un dominio Dynamic Link è simile ai seguenti esempi:
https://example.com/link
https://example.page.link
Parametri Android
setFallbackUrl Il collegamento da aprire quando l'app non è installata. Specifica questa opzione per fare qualcosa di diverso dall'installare l'app dal Play Store quando l'app non è installata, ad esempio aprire la versione Web mobile del contenuto 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 aggiornare l'app.
IosParameters
setAppStoreId L'ID dell'App Store della tua app, utilizzato per inviare gli utenti all'App Store quando l'app non è installata
setFallbackUrl Il collegamento da aprire quando l'app non è installata. Specifica questa opzione per fare qualcosa di diverso dall'installare la tua app dall'App Store quando l'app non è installata, ad esempio aprire la versione Web mobile del contenuto o visualizzare una pagina promozionale per la tua app.
setCustomScheme Lo schema URL personalizzato della tua app, se definito come qualcosa di diverso dall'ID bundle della tua app
setIpadFallbackUrl Il link per aprire su iPad quando l'app non è installata. Specifica questa opzione per fare qualcosa di diverso dall'installare la tua app dall'App Store quando l'app non è installata, ad esempio aprire la versione web del contenuto o visualizzare una pagina promozionale per la tua app.
setIpadBundleId L'ID bundle dell'app iOS da utilizzare su iPad per aprire il collegamento. L'app deve essere connessa al tuo progetto dalla pagina Panoramica della console Firebase.
setMinimumVersion Il numero di versione della versione minima dell'app che può aprire il collegamento. Questo flag viene passato alla tua app quando viene aperta e la tua app deve decidere cosa farne.
NavigationInfoParameters
setForcedRedirectEnabled Se impostato su "1", salta la pagina di anteprima dell'app quando viene aperto il collegamento dinamico e reindirizza invece all'app o allo store. La pagina di anteprima dell'app (attivata per impostazione predefinita) può inviare in modo più affidabile gli utenti alla destinazione più appropriata quando aprono i collegamenti dinamici nelle app; tuttavia, se prevedi che un collegamento dinamico venga aperto solo in app che possono aprire collegamenti dinamici in modo affidabile senza questa pagina, puoi disabilitarlo con questo parametro. Questo parametro influenzerà il comportamento di Dynamic Link solo su iOS.
SocialMetaTagParameters
setTitolo Il titolo da utilizzare quando il collegamento dinamico è condiviso in un post social.
setDescrizione La descrizione da utilizzare quando il collegamento dinamico è condiviso in un post social.
setImageUrl L'URL di un'immagine correlata a questo collegamento. L'immagine deve essere di almeno 300 x 200 px e inferiore a 300 KB.
Parametri di GoogleAnalytics
setSource
setMedio
impostaCampagna
setTerm
setContenuto
Parametri di analisi 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 collegamento.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
Parametri di analisi di iTunes Connect. Questi parametri (`pt`, `at`, `ct`) vengono passati all'App Store.