Pour recevoir le Firebase Dynamic Links que vous avez
créé, vous devez inclure le SDK Dynamic Links dans votre application et appeler la méthode FirebaseDynamicLinks.getDynamicLink()
lorsque votre application se charge pour obtenir les données transmises dans le Dynamic Link.
Configurer Firebase et le SDK Dynamic Links
Si ce n'est pas encore 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 la bibliothèque Dynamic Links pour Android. Nous vous recommandons d'utiliser Firebase Android BoM pour contrôler le versionnage de la bibliothèque.Pour une expérience optimale avec Dynamic Links, nous vous recommandons d'activer Google Analytics dans votre projet Firebase et d'ajouter le SDK Firebase pour Google Analytics à votre application.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.16.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' }
En utilisant la Firebase Android BoM, votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Ajoutez les dépendances de la bibliothèque Firebase sans utiliser BoM.
Si vous choisissez de ne pas utiliser Firebase BoM, vous devez spécifier la version de chaque bibliothèque Firebase sur sa ligne de dépendance.
Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser BoM pour gérer les versions des bibliothèques, 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:22.1.0' implementation 'com.google.firebase:firebase-analytics:22.5.0' }
- Dans la console Firebase, ouvrez la section Dynamic Links. Acceptez les conditions d'utilisation si vous y êtes invité.
Ajouter un filtre d'intent pour les liens profonds
Comme pour les
liens profonds simples, vous devez ajouter un filtre d'intent à l'activité qui gère les liens profonds pour votre application. Le filtre d'intent doit capturer les liens profonds de votre domaine, car le Dynamic Link redirigera vers votre domaine si votre application est installée. Cette étape est nécessaire pour que votre application reçoive les données Dynamic Link après son installation/mise à jour depuis le Play Store et lorsqu'un utilisateur appuie 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 Dynamic Link 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'intent pour gérer le lien.
Gérer les liens profonds
Pour recevoir le lien profond, appelez la méthode 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); } });
Vous devez appeler getDynamicLink()
dans chaque activité susceptible d'être lancée par le lien, même si le lien peut être disponible à partir de l'intent à l'aide de getIntent().getData()
. L'appel de getDynamicLink()
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 dans toutes les activités lancées par des filtres d'intent correspondant au lien.
Données analytiques sur les enregistrements
Les événements suivants peuvent être suivis automatiquement dans Google Analytics et affichés dans la console Firebase.
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
Pour 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 du lanceur d'applications. Par exemple :
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Points d'entrée d'activité. Par exemple :
onStart()
,onCreate()
. - Activités de liens profonds.
- Configurer et utiliser Google Analytics :
- Incluez la dépendance Google Analytics. Il est généralement ajouté automatiquement par le plug-in Gradle
google-services
. - Incluez le fichier de configuration
google-services.json
dans votre application. - Appelez
FirebaseAnalytics.getInstance()
avant d'appelerFirebaseDynamicLinks.getDynamicLink()
.
Gérer Dynamic Links à l'aide des liens d'application
Sur Android 6.0 (niveau d'API 23) ou version ultérieure, vous pouvez configurer votre application pour qu'elle gère directement Dynamic Links lorsqu'elle est déjà installée, en utilisant les liens d'application Android.
Assurez-vous d'avoir ajouté l'empreinte du certificat SHA256 pour votre application à votre projet dans la console Firebase. Dynamic Links se chargera de configurer l'association du site Web des liens d'application pour votre domaine Dynamic Links.
Ajoutez un filtre d'intent à validation automatique à l'activité qui gérera Dynamic Link, en définissant l'hôte sur le domaine Dynamic Links de votre projet, comme indiqué dans la console Firebase. Dans 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'intent autoVerify
de votre fichier manifeste doivent être enregistrés pour que les liens d'application fonctionnent. Firebase gère cela automatiquement pour vos domaines Dynamic Links, mais vous pouvez le vérifier en ouvrant le fichier assetlinks.json
hébergé sur votre domaine Dynamic Links :
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links sera désormais envoyé 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'intent App Links (comme décrit dans Gérer les liens profonds).
Remarque : Étant donné que l'invocation via les liens d'application redirige l'utilisateur directement vers l'application, un lien dynamique ne peut pas respecter la version minimale requise. Une fois l'application ouverte, vous devez comparer la version minimale du lien dynamique ( getminimumappversion) à PackageInfo.versionCode et rediriger l'utilisateur pour qu'il mette à jour l'application si nécessaire à l'aide de getUpdateAppIntent.