Crea link dinamici con Unity

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. L'API Dynamic Links genererà un URL come il seguente:

https://example.page.link/aSDf

Prima di iniziare

Prima di poter utilizzare Firebase Dynamic Links, devi:

  • Registra il tuo progetto Unity e configuralo in modo che utilizzi Firebase.

    • Se il tuo progetto Unity utilizza già Firebase, è già registrato e configurato per Firebase.

    • Se non hai un progetto Unity, puoi scaricare un'app di esempio.

  • Aggiungi l'SDK Firebase Unity (in particolare, FirebaseDynamicLinks.unitypackage) al tuo progetto Unity.

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

Imposta un prefisso URI Dynamic Links

  1. Nella console Firebase, apri la sezione Dynamic Links.

  2. 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.

  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.

Utilizzare la console Firebase

Se vuoi generare un singolo Dynamic Link, ad esempio a scopo di test o per consentire al tuo team di marketing di creare facilmente un link da utilizzare in un post sui social media, il modo più semplice è visitare la Firebaseconsole 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

Creazione di un valore lungo Dynamic Link dai parametri

Per creare un link dinamico, crea un oggetto DynamicLinkComponents, imposta uno qualsiasi dei membri facoltativi per la configurazione aggiuntiva e poi accedi alla proprietà LongDynamicLink per ottenere l'URL del link.

L'esempio minimo seguente crea un link dinamico lungo a https://www.example.com/ che si apre con l'app per Android com.example.android su Android e l'app com.example.ios su iOS:

var components = new Firebase.DynamicLinks.DynamicLinkComponents(
    // The base Link.
    new System.Uri("https://www.example.com/"),
    // The dynamic link URI prefix.
    "https://example.page.link") {
      IOSParameters = new Firebase.DynamicLinks.IOSParameters("com.example.ios"),
      AndroidParameters = new Firebase.DynamicLinks.AndroidParameters(
        "com.example.android.package_name"),
    };
// do something with: components.LongDynamicLink

Creazione di uno Short Dynamic Link

Per creare un link dinamico breve, passa un link lungo generato in precedenza a Firebase.DynamicLinks.GetShortLinkAsync o crea DynamicLinkComponents in modo analogo a quanto descritto sopra.

GetShortLinkAsync accetta facoltativamente un parametro di configurazione DynamicLinkOptions aggiuntivo con la proprietà PathLength, che ti consente di controllare la modalità di generazione del link. La generazione di link brevi richiede una richiesta di rete al backend Firebase, pertanto il metodo GetShortLinkAsync viene eseguito in modo asincrono. GetShortLinkAsync restituisce un Task<Firebase.DynamicLinks.ShortDynamicLink>.

Ad esempio:

var options = new Firebase.DynamicLinks.DynamicLinkOptions {
  PathLength = DynamicLinkPathLength.Unguessable
};

Firebase.DynamicLinks.DynamicLinks.GetShortLinkAsync(components, options).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("GetShortLinkAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("GetShortLinkAsync encountered an error: " + task.Exception);
    return;
  }

  // Short Link has been created.
  Firebase.DynamicLinks.ShortDynamicLink link = task.Result;
  Debug.LogFormat("Generated short link {0}", link.Url);

  var warnings = new System.Collections.Generic.List<string>(link.Warnings);
  if (warnings.Count > 0) {
    // Debug logging for warnings generating the short link.
  }
});

L'esempio precedente utilizza un'espressione lambda che viene attivata al termine dell'attività.