Per ricevere i Firebase Dynamic Links che
hai creato, devi includere l'SDK di Dynamic Links nella tua app e chiamare il
FirebaseDynamicLinks.getDynamicLink() metodo quando l'app viene caricata per
ottenere i dati passati nel Dynamic Link.
Configura Firebase e l'SDK Dynamic Links
Se non l'hai ancora fatto, aggiungi Firebase al tuo progetto Android.
Quando registri l'app, specifica la chiave di firma SHA-1. Se utilizzi i link app, specifica anche la chiave SHA-256.
-
Nel file Gradle del modulo (a livello di app) (in genere
<project>/<app-module>/build.gradle.ktso<project>/<app-module>/build.gradle), aggiungi la dipendenza per la libreria Dynamic Links per Android. Ti consigliamo di utilizzare il Firebase Android BoM per controllare il controllo delle versioni della libreria.Per un'esperienza ottimale con Dynamic Links, ti consigliamo di attivare Google Analytics nel tuo progetto Firebase e di aggiungere l'SDK Firebase per Google Analytics alla tua app.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.0")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Se utilizzi il Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase per Android.
(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare il BoM
Se scegli di non utilizzare il Firebase BoM, devi specificare la versione di ogni libreria Firebase nella riga di dipendenza.
Tieni presente che, se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare il BoM per gestire le versioni delle librerie, in modo da garantire che tutte le versioni siano compatibili.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:23.2.0' }
- Nella Firebase console, apri la Dynamic Links sezione. Accetta i Termini di servizio se ti viene richiesto.
Aggiungi un filtro per intent per i link diretti
Come per i
link diretti semplici, devi aggiungere un nuovo filtro per intent all'attività che gestisce
i link diretti per la tua app. Il filtro per intent deve intercettare i link diretti del tuo dominio, poiché il
Dynamic Link reindirizzerà al tuo dominio se l'app è installata. Questa operazione è necessaria affinché la tua app
riceva i dati Dynamic Link dopo l'installazione/l'aggiornamento da Play Store e quando 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 Dynamic Link con un link diretto allo schema e all'host specificati, la tua app avvierà l'attività con questo filtro per intent per gestire il link.
Gestisci i link diretti
Per ricevere il link diretto, chiama il metodo getDynamicLink():
Kotlin
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: 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) }
Java
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); } });
Devi chiamare getDynamicLink() in ogni attività che potrebbe essere avviata dal link, anche se il link potrebbe essere disponibile dall'intent utilizzando getIntent().getData(). La chiamata a getDynamicLink() recupera il link e cancella i dati in modo che vengano elaborati una sola volta dalla tua app.
In genere, chiami getDynamicLink() nell'attività principale e in tutte le attività avviate dai filtri per intent che corrispondono al link.
Registra Analytics
I seguenti eventi possono essere monitorati automaticamente in Google Analytics e visualizzati nella Firebase console.
dynamic_link_app_opendynamic_link_first_opendynamic_link_app_update
Per registrare questi eventi, devi configurare Google Analytics prima di recuperare il link diretto. Verifica che siano soddisfatte le seguenti condizioni:
- Chiama
FirebaseDynamicLinks.getDynamicLink()nei punti di accesso dell'app: - Attività di avvio. Ad es.:
action="android.intent.action.MAIN",category="android.intent.category.LAUNCHER". - Punti di accesso dell'attività. Ad es.:
onStart(),onCreate(). - Attività di link diretto.
- Configura e utilizza Google Analytics:
- Includi la dipendenza Google Analytics. In genere, questa viene aggiunta automaticamente dal
google-servicesplug-in Gradle. - Includi il
file di configurazione nella tua app.
google-services.json - Chiama
FirebaseAnalytics.getInstance()prima di chiamareFirebaseDynamicLinks.getDynamicLink().
Gestisci Dynamic Links utilizzando i link app
Su Android 6.0 (livello API 23) e versioni successive, puoi configurare la tua app in modo che gestisca direttamente Dynamic Links quando l'app è già installata utilizzando i link app Android.
Assicurati di aver aggiunto la fingerprint del certificato SHA256 per la tua app al progetto in the Firebase console. Dynamic Links gestirà la configurazione dell'associazione del sito web dei link app per il dominio di Dynamic Links.
Aggiungi un filtro per intent con verifica automatica all'attività che gestirà il Dynamic Link, impostando l
'host sul dominio Dynamic Links del tuo progetto, come indicato nella console Firebase. In
the 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 dominio Dynamic Links e non sul dominio
del link diretto.
Perché i link app funzionino, tutti i filtri per intent autoVerify nel manifest devono essere registrati. Firebase gestisce questa operazione automaticamente per i domini Dynamic Links, ma puoi verificare
questa operazione aprendo il file assetlinks.json ospitato sul dominio Dynamic Links:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links verranno ora inviati direttamente alla tua app. Potrai ottenere il link diretto e altri
Dynamic Link dati chiamando getDynamicLink() nell'attività a cui hai aggiunto il filtro per intent dei link app (come descritto in
Gestisci i link diretti).
Nota: poiché la chiamata tramite i link app indirizza l'utente direttamente all'app, un Dynamic Link non può rispettare la versione minima richiesta. Pertanto, una volta aperta l'app, devi confrontare la versione minima del Dynamic Link ( getminimumappversion) con PackageInfo.versionCode e reindirizzare l'utente all'upgrade dell'app, se necessario, utilizzando getUpdateAppIntent.