Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Ricevi Firebase Dynamic Links su Android

Per ricevere i Firebase Dynamic Links che hai creato , devi includere Dynamic Links SDK nella tua app e chiamare il metodo FirebaseDynamicLinks.getDynamicLink() quando la tua app viene caricata per ottenere i dati passati in Dynamic Link.

  1. Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android .

    Quando registri la tua app, specifica la tua chiave di firma SHA-1. Se utilizzi App Link, specifica anche la tua chiave SHA-256.

  2. Nel tuo file build.gradle livello di build.gradle , assicurati di includere il repository Maven di Google in entrambe le sezioni buildscript e allprojects .
  3. Aggiungi la dipendenza per la libreria Android di Dynamic Links al file Gradle del modulo (a livello di app) (di solito app/build.gradle ).

    Per un'esperienza ottimale con Dynamic Links, ti consigliamo di abilitare Google Analytics nel tuo progetto. Inoltre, come parte della configurazione di Analytics, devi aggiungere l'SDK Firebase per Analytics alla tua app.

    Giava

    implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'

    Kotlin + KTX

    implementation 'com.google.firebase:firebase-dynamic-links-ktx:19.1.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
  4. Nella console Firebase , apri la sezione Collegamenti dinamici . Accetta i termini di servizio se ti viene chiesto di farlo.

Come per i link diretti semplici , devi aggiungere un nuovo filtro per intenti all'attività che gestisce i link diretti per la tua app. Il filtro intent dovrebbe rilevare i link diretti del tuo dominio, poiché il collegamento dinamico reindirizzerà al tuo dominio se la tua app è installata. Ciò è necessario affinché la tua app riceva i dati di Dynamic Link dopo che è stata installata / aggiornata dal Play Store e si tocca il pulsante Continua. In AndroidManifest.xml :

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data
        android:host="example.com"
        android:scheme="https"/>
</intent-filter>

Quando gli utenti aprono un collegamento dinamico con un collegamento diretto allo schema e all'host specificato, la tua app avvierà l'attività con questo filtro di intenzione per gestire il collegamento.

Per ricevere il link getDynamicLink() , chiama il metodo getDynamicLink() :

Giava

FirebaseDynamicLinks.getInstance()
        .getDynamicLink(getIntent())
        .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
            @Override
            public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                // Get deep link from result (may be null if no link is found)
                Uri deepLink = null;
                if (pendingDynamicLinkData != null) {
                    deepLink = pendingDynamicLinkData.getLink();
                }


                // Handle the deep link. For example, open the linked
                // content, or apply promotional credit to the user's
                // account.
                // ...

                // ...
            }
        })
        .addOnFailureListener(this, new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "getDynamicLink:onFailure", e);
            }
        });

Kotlin + KTX

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener(this) { pendingDynamicLinkData ->
            // Get deep link from result (may be null if no link is found)
            var deepLink: Uri? = null
            if (pendingDynamicLinkData != null) {
                deepLink = pendingDynamicLinkData.link
            }

            // Handle the deep link. For example, open the linked
            // content, or apply promotional credit to the user's
            // account.
            // ...

            // ...
        }
        .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }

È necessario chiamare getDynamicLink() in ogni attività che potrebbe essere avviata dal collegamento, anche se il collegamento potrebbe essere disponibile dall'intento utilizzando getIntent().getData() . La chiamata a getDynamicLink() recupera il collegamento e cancella i dati in modo che getDynamicLink() elaborati solo una volta dalla tua app.

Normalmente chiami getDynamicLink() nell'attività principale così come qualsiasi attività avviata dai filtri di intenti che corrispondono al collegamento.

Registra analisi

I seguenti eventi possono essere monitorati automaticamente in Google Analytics e visualizzati nella console di Firebase.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Per registrare questi eventi, è necessario configurare Google Analytics prima di recuperare il deep link. Verificare che siano soddisfatte le seguenti condizioni:

  • Chiama FirebaseDynamicLinks.getDynamicLink() nei punti di ingresso della tua app:
    • Attività di avvio. ad esempio: action="android.intent.action.MAIN" , category="android.intent.category.LAUNCHER" .
    • Punti di ingresso delle attività. ad esempio: onStart() , onCreate() .
    • Attività di deep link.
  • Configurazione e utilizzo di Google Analytics:
    • Includi la dipendenza da Google Analytics. Questo di solito viene aggiunto automaticamente dal plugin Gradle di google-services .
    • Includi il file di configurazione google-services.json nella tua app.
    • Chiama FirebaseAnalytics.getInstance() prima di chiamare FirebaseDynamicLinks.getDynamicLink() .

Su Android 6.0 (livello API 23) e versioni successive, puoi configurare la tua app per gestire i link dinamici direttamente quando la tua app è già installata utilizzando i link app Android .

Assicurati di aver aggiunto l'impronta digitale del certificato SHA256 per la tua app nel tuo progetto nella console Firebase . Dynamic Links gestirà la configurazione dell'associazione del sito Web App Links per il tuo dominio Dynamic Links.

Aggiungi un filtro intento verificato automaticamente all'attività che gestirà il collegamento dinamico, impostando l'host sul dominio Collegamenti dinamici del progetto come si trova nella console di Firebase . In AndroidManifest.xml :

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:host="example.com/link" android:scheme="http"/>
    <data android:host="example.com/link" android:scheme="https"/>
</intent-filter>

Tieni presente che android:host deve essere impostato sul tuo dominio Dynamic Links e non sul dominio del tuo link diretto.

Tutti i filtri di intent autoVerify nel file manifest devono essere registrati affinché i link app possano interagire. Firebase gestisce questo automaticamente per i tuoi domini Dynamic Links, ma puoi verificarlo aprendo il file assetlinks.json ospitato sul tuo dominio Dynamic Links:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Tutti i nomi dei pacchetti delle tue app Firebase dovrebbero essere inclusi.

I link dinamici verranno ora inviati direttamente alla tua app. Sarai in grado di ottenere il collegamento getDynamicLink() e altri dati di collegamento dinamico chiamando getDynamicLink() nell'attività a cui hai aggiunto il filtro di intenti Collegamenti app (come descritto in Gestione dei collegamenti diretti ).