Per ricevere i Firebase Dynamic Links che hai creato , devi includere l'SDK Dynamic Links nella tua app e chiamare il metodo FirebaseDynamicLinks.getDynamicLink()
quando la tua app viene caricata per ottenere i dati trasmessi nel Dynamic Link.
Configura Firebase e l'SDK di Dynamic Links
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 Links, specifica anche la tua chiave SHA-256.
Nel file Gradle del tuo modulo (a livello di app) (di solito
<project>/<app-module>/build.gradle
), aggiungi la dipendenza per la libreria Android Dynamic Links. Ti consigliamo di utilizzare la distinta base Android di Firebase per controllare il controllo delle versioni della libreria.Per un'esperienza ottimale con i link dinamici, ti consigliamo di abilitare Google Analytics nel tuo progetto Firebase e di aggiungere l'SDK Firebase per Google Analytics alla tua app.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare la distinta base
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.
Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce 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-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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' }
Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare la distinta base
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.
Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la distinta base per gestire le versioni della libreria, che garantisce 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:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.3.0' }
- Nella console Firebase , apri la sezione Collegamenti dinamici . Accetta i termini di servizio se ti viene richiesto.
Aggiungi un filtro intent per i link diretti
Come per i link diretti semplici , devi aggiungere un nuovo filtro intent 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. Questo è 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 specificati, la tua app avvierà l'attività con questo filtro intent per gestire il collegamento.
Gestisci i deep link
Per ricevere il deep link, chiama il metodo
getDynamicLink()
:Kotlin+KTX
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 collegamento, anche se il collegamento potrebbe essere disponibile dall'intento utilizzandogetIntent().getData()
. La chiamatagetDynamicLink()
recupera il collegamento e cancella i dati in modo che vengano elaborati una sola 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 mostrati 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 dell'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 collegamento profondo.
- Configurare e utilizzare Google Analytics:
- Includi la dipendenza di Google Analytics. Questo di solito viene aggiunto automaticamente dal plug-in Gradle
google-services
. - Includi il file di configurazione
google-services.json
nella tua app. - Chiama
FirebaseAnalytics.getInstance()
prima di chiamareFirebaseDynamicLinks.getDynamicLink()
.
Gestione dei collegamenti dinamici utilizzando i collegamenti alle app
Su Android 6.0 (livello API 23) e versioni successive, puoi configurare la tua app in modo che gestisca direttamente i collegamenti dinamici quando l'app è già installata utilizzando Android App Links .
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 di App Links per il tuo dominio Dynamic Links.
Aggiungi un filtro di intent con verifica automatica all'attività che gestirà il collegamento dinamico, impostando l'host sul dominio dei collegamenti dinamici del tuo progetto come si trova nella console Firebase . Nel file
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 deep link.Tutti i filtri di intent
autoVerify
nel file manifest devono essere registrati affinché App Links possa interagire. Firebase lo gestisce automaticamente per i tuoi domini Dynamic Links, ma puoi verificarlo aprendo il fileassetlinks.json
ospitato sul tuo dominio Dynamic Links:https://YOUR_DOMAIN/.well-known/assetlinks.json
Tutti i nomi dei pacchetti delle tue app Firebase devono essere inclusi.I collegamenti dinamici verranno ora inviati direttamente alla tua app. Sarai in grado di ottenere il collegamento diretto e altri dati del collegamento dinamico chiamando
getDynamicLink()
nell'attività a cui hai aggiunto il filtro di intento App Links (come descritto in Gestire i collegamenti diretti ).Nota: poiché l'invocazione tramite App Links porta l'utente direttamente all'app, un Dynamic Link non può rispettare la versione minima richiesta. Pertanto, una volta aperta l'app, è necessario confrontare la versione minima di Dynamic Link ( getminimumappversion ) con PackageInfo.versionCode e reindirizzare l'utente per aggiornare l'app, se necessario, utilizzando getUpdateAppIntent .
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2023-06-02 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Mancano le informazioni di cui ho bisogno" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Troppo complicato/troppi passaggi" },{ "type": "thumb-down", "id": "outOfDate", "label":"Obsoleti" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Problema relativo a esempi/codice" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }]