Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

Recevez des liens dynamiques Firebase sur Android

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() lorsque votre application se charge pour obtenir les données transmises dans le lien dynamique.

  1. 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.

  2. À l'aide de Firebase Android BoM , déclarez la dépendance de la bibliothèque Dynamic Links Android dans le fichier Gradle de votre module (au niveau de l'application) (généralement app/build.gradle ).

    Pour une expérience optimale avec les liens dynamiques, nous vous recommandons d' activer Google Analytics dans votre projet. De plus, dans le cadre de la configuration d'Analytics, vous devez ajouter le SDK Firebase pour Google Analytics à votre application.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:25.12.0')
    
        // Declare 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) Déclarez les dépendances de la bibliothèque Firebase sans utiliser le BoM

    Si vous choisissez de ne pas utiliser Firebase BoM, vous devez spécifier chaque version de 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 BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.

    dependencies {
        // Declare 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:19.1.1'
        implementation 'com.google.firebase:firebase-analytics:17.6.0'
    }
    

    Kotlin + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:25.12.0')
    
        // Declare 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) Déclarez les dépendances de la bibliothèque Firebase sans utiliser le BoM

    Si vous choisissez de ne pas utiliser Firebase BoM, vous devez spécifier chaque version de 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 BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.

    dependencies {
        // Declare 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:19.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:17.6.0'
    }
    
  3. Dans la console Firebase , ouvrez la section Liens dynamiques . Acceptez les conditions d'utilisation si vous êtes invité à le faire.

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. Cela 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émarrera l'activité avec ce filtre d'intention pour gérer le lien.

Pour recevoir le lien profond, appelez la méthode getDynamicLink() :

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);
            }
        });

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) }

Vous devez appeler getDynamicLink() dans chaque activité qui pourrait être lancée par le lien, même si le lien peut être disponible à partir de l'intention en utilisant 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'intention qui correspondent au lien.

Enregistrer des analyses

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

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. 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 lien profond.
  • 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'appeler FirebaseDynamicLinks.getDynamicLink() .

Sur Android 6.0 (niveau d'API 23) et supérieur, vous pouvez configurer votre application pour gérer les liens dynamiques directement lorsque votre application est déjà installée à l'aide des liens d'application Android .

Vérifiez que vous avez ajouté l'empreinte digitale du certificat SHA256 pour votre application dans votre projet dans la console Firebase . Dynamic Links gérera la configuration de l'association de sites Web App Links pour votre domaine Dynamic Links.

Ajoutez un filtre d'intention auto-vérifié à l'activité qui gérera le lien dynamique, en définissant l'hôte sur le domaine de 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 fichier assetlinks.json hébergé sur votre domaine Dynamic Links:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Tous les noms de package 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 de lien dynamique 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 ).