Recevez des liens dynamiques Firebase sur Android

Pour recevoir le Firebase Dynamic Liens que vous avez créé , vous devez inclure les liens dynamiques SDK dans votre application et appelez le FirebaseDynamicLinks.getDynamicLink() méthode lorsque vos charges d'application pour obtenir les données transmises dans le Dynamic Link.

  1. Si vous avez pas déjà, ajoutez Firebase à votre projet Android .

    Lorsque vous enregistrez votre application, spécifiez votre clé de signature SHA-1. Si vous utilisez App Links, spécifiez également votre clé SHA-256.

  2. Utilisation de la Firebase Android BoM , déclarer la dépendance de la bibliothèque Android Liens dynamique dans votre module (app-niveau) de fichier Gradle (généralement app/build.gradle ).

    Pour une expérience optimale avec des liens dynamiques, nous vous recommandons de permettre à Google Analytics dans votre projet Firebase et en ajoutant le SDK Firebase Google Analytics à votre application.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.3.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 le Firebase Android BoM , votre application utilise toujours des versions compatibles des bibliothèques Firebase Android.

    (Alternative) déclarer des dépendances de bibliothèque firebase sans utiliser la nomenclature

    Si vous choisissez de ne pas utiliser la nomenclature de 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 fortement d' utiliser la BoM pour gérer les versions 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:20.1.1'
        implementation 'com.google.firebase:firebase-analytics:19.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.3.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 le Firebase Android BoM , votre application utilise toujours des versions compatibles des bibliothèques Firebase Android.

    (Alternative) déclarer des dépendances de bibliothèque firebase sans utiliser la nomenclature

    Si vous choisissez de ne pas utiliser la nomenclature de 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 fortement d' utiliser la BoM pour gérer les versions 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:20.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.0'
    }
    
  3. Dans la console Firebase , ouvrez la section des liens dynamiques. Acceptez les conditions d'utilisation si vous y êtes invité.

Comme dans le cas des liens profonds simples , vous devez ajouter un nouveau filtre intention de l'activité qui gère des 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 depuis le Play Store et un appui sur le bouton Continuer. En 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.

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

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 toutes les activités qui pourraient être lancé par le lien, même si le lien est peut - être disponible à partir de l'intention à l' aide getIntent().getData() . Appel getDynamicLink() récupère le lien et efface les données de sorte qu'il est seulement une fois traitées par votre application.

Vous appelez normalement getDynamicLink() dans l'activité principale, ainsi que toutes les activités lancées par des filtres d' intention qui correspondent le 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

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 vos points d'entrée de l' application:
    • Activités du 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 de Google Analytics. Ceci est habituellement ajouté automatiquement par le google-services plug - in Gradle.
    • Inclure le google-services.json fichier config dans votre application.
    • Appelez FirebaseAnalytics.getInstance() avant d' appeler FirebaseDynamicLinks.getDynamicLink() .

Sur Android 6.0 (niveau API 23) et plus, vous pouvez configurer votre application pour gérer dynamique Liens directement lorsque votre application est préinstallée en utilisant Android App Links .

Assurez -vous que vous avez ajouté l'empreinte de certificat SHA256 pour votre application dans votre projet dans la console Firebase . Dynamic Links s'occupera de la configuration de l'association du site Web App Links pour votre domaine Dynamic Links.

Ajouter un filtre auto-intention vérifiée à l'activité qui va gérer le Dynamic Link, la mise en l'hôte au domaine des liens dynamiques de votre projet 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 l' android:host doit être à votre domaine des liens dynamiques, et non le domaine de votre lien profond.

Tous les autoVerify filtres d' intention dans votre manifeste doivent être enregistrés pour que App Liens pour engager. Poignées Firebase automatiquement pour vos domaines dynamiques Liens, mais vous pouvez le vérifier en ouvrant le assetlinks.json fichier hébergé sur votre domaine Liens dynamiques:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Tous vos noms de paquet de applications Firebase devrait ê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é que vous avez ajouté le filtre intention App Liens vers (comme décrit dans Manipulez des liens profonds ).