Pour recevoir les liens dynamiques Firebase que vous avez créés , vous devez inclure le SDK Dynamic Links dans votre application et appeler la méthode FirebaseDynamicLinks.getDynamicLink()
lors du chargement de votre application pour obtenir les données transmises dans le lien dynamique.
Configurer Firebase et le SDK Dynamic Links
Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Android .
Lorsque vous enregistrez votre application, spécifiez votre clé de signature SHA-1. Si vous utilisez des liens d'application, spécifiez également votre clé SHA-256.
Dans le fichier Gradle de votre module (au niveau de l'application) (généralement
<project>/<app-module>/build.gradle.kts
ou<project>/<app-module>/build.gradle
), ajoutez la dépendance pour les liens dynamiques Bibliothèque Android. Nous vous recommandons d'utiliser Firebase Android BoM pour contrôler la gestion des versions de la bibliothèque.Pour une expérience optimale avec les liens dynamiques, nous vous recommandons d'activer Google Analytics dans votre projet Firebase et d'ajouter le SDK Firebase pour Google Analytics à votre application.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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' }
En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Ajouter des dépendances à la bibliothèque Firebase sans utiliser le BoM
Si vous choisissez de ne pas utiliser la nomenclature Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.
Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.
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.3.1")) // 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' }
En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Ajouter des dépendances à la bibliothèque Firebase sans utiliser le BoM
Si vous choisissez de ne pas utiliser la nomenclature Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.
Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.
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' }
- Dans la console Firebase , ouvrez la section Liens dynamiques . Acceptez les conditions d'utilisation si vous y êtes invité.
Ajouter un filtre d'intention pour les liens profonds
Comme pour les liens profonds simples , vous devez ajouter un nouveau filtre d'intention à l'activité qui gère les liens profonds pour votre application. Le filtre d'intention doit capturer les liens profonds de votre domaine, car le lien dynamique redirigera vers votre domaine si votre application est installée. Ceci est nécessaire pour que votre application reçoive les données Dynamic Link après son installation/mise à jour à partir du Play Store et une pression sur le bouton Continuer. Dans
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>
Lorsque les utilisateurs ouvrent un lien dynamique avec un lien profond vers le schéma et l'hôte que vous spécifiez, votre application démarre l'activité avec ce filtre d'intention pour gérer le lien.
Gérer les liens profonds
Pour recevoir le lien profond, appelez la méthode
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); } });
Vous devez appeler
getDynamicLink()
dans chaque activité pouvant être lancée par le lien, même si le lien peut être disponible à partir de l'intent à l'aide degetIntent().getData()
. L'appel degetDynamicLink()
récupère le lien et efface ces données afin qu'elles ne soient traitées qu'une seule fois par votre application.Vous appelez normalement
getDynamicLink()
dans l'activité principale ainsi que toutes les activités lancées par les filtres d'intention qui correspondent au lien.Analyse des enregistrements
Les événements suivants peuvent être automatiquement suivis dans Google Analytics et affichés dans la console Firebase.
-
dynamic_link_app_open
-
dynamic_link_first_open
-
dynamic_link_app_update
Afin d'enregistrer ces événements, vous devez configurer Google Analytics avant de récupérer le lien profond. Vérifiez que les conditions suivantes sont remplies :
- Appelez
FirebaseDynamicLinks.getDynamicLink()
dans les points d'entrée de votre application : - Activités de lanceur. par exemple :
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Points d'entrée de l'activité. par exemple :
onStart()
,onCreate()
. - Activités de liens profonds.
- Configurer et utiliser Google Analytics :
- Incluez la dépendance Google Analytics. Ceci est généralement ajouté automatiquement par le plugin
google-services
Gradle. - Incluez le fichier de configuration
google-services.json
dans votre application. - Appelez
FirebaseAnalytics.getInstance()
avant d'appelerFirebaseDynamicLinks.getDynamicLink()
.
Gestion des liens dynamiques à l'aide des liens d'application
Sur Android 6.0 (API niveau 23) et versions ultérieures, vous pouvez configurer votre application pour qu'elle gère les liens dynamiques directement lorsque votre application est déjà installée à l'aide d' Android App Links .
Assurez-vous d'avoir ajouté l'empreinte digitale du certificat SHA256 pour votre application dans votre projet dans la console Firebase . Dynamic Links se chargera de configurer l'association de sites Web App Links pour votre domaine Dynamic Links.
Ajoutez un filtre d'intention vérifié automatiquement à l'activité qui gérera le lien dynamique, en définissant l'hôte sur le domaine des liens dynamiques de votre projet, tel qu'il se trouve dans la console Firebase . Dans le
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>
Notez que
android:host
doit être défini sur votre domaine Dynamic Links, et non sur le domaine de votre lien profond.Tous les filtres d'intention
autoVerify
de votre manifeste doivent être enregistrés pour que les liens d'application s'engagent. Firebase gère cela automatiquement pour vos domaines Dynamic Links, mais vous pouvez le vérifier en ouvrant le fichierassetlinks.json
hébergé sur votre domaine Dynamic Links :https://YOUR_DOMAIN/.well-known/assetlinks.json
Tous les noms de packages de vos applications Firebase doivent être inclus.Les liens dynamiques seront désormais envoyés directement à votre application. Vous pourrez obtenir le lien profond et d'autres données Dynamic Link en appelant
getDynamicLink()
dans l'activité à laquelle vous avez ajouté le filtre d'intention App Links (comme décrit dans Gérer les liens profonds ).Remarque : étant donné que l'appel via les liens d'application amène l'utilisateur directement à l'application, un lien dynamique ne peut pas respecter la version minimale requise. Ainsi, une fois l'application ouverte, vous devez comparer la version minimale du lien dynamique ( getminimumappversion ) à PackageInfo.versionCode et rediriger l'utilisateur pour mettre à niveau l'application si nécessaire à l'aide de getUpdateAppIntent .
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2023/09/20 (UTC).
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Il n'y a pas l'information dont j'ai besoin" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Trop compliqué/Trop d'étapes" },{ "type": "thumb-down", "id": "outOfDate", "label":"Obsolète" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problème de traduction" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Mauvais exemple/Erreur de code" },{ "type": "thumb-down", "id": "otherDown", "label":"Autre" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile à comprendre" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"J'ai pu résoudre mon problème" },{ "type": "thumb-up", "id": "otherUp", "label":"Autre" }]