Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Erhalten Sie dynamische Firebase-Links auf Android

Um die Firebase dynamischen Links zu erhalten , dass Ihr erstellt , müssen Sie die dynamischen Links SDK in Ihrer App enthalten und die Anruf FirebaseDynamicLinks.getDynamicLink() Methode , wenn Ihre Anwendung lädt die Daten in dem Dynamic Link übergeben zu bekommen.

  1. Wenn Sie nicht bereits haben, fügen Sie Firebase zu dem Android - Projekt .

    Geben Sie bei der Registrierung Ihrer App Ihren SHA-1-Signaturschlüssel an. Wenn Sie App Links verwenden, geben Sie auch Ihren SHA-256-Schlüssel an.

  2. Mit Hilfe der Firebase Android BoM , erklärt die Abhängigkeit für die dynamischen Links Android - Bibliothek in Ihrem Modul (app-Ebene) Gradle Datei ( in der Regel app/build.gradle ).

    Für eine optimale Erfahrung mit dynamischen Verbindungen, empfehlen wir Google Analytics ermöglicht in Ihrem Firebase - Projekt und das Hinzufügen des Firebase SDK für Google Analytics in Ihrer App.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // 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'
    }
    

    Durch die Verwendung des Firebase Android BoM werden, Ihre App immer kompatible Versionen der Firebase Android - Bibliotheken verwenden.

    (Alternative) Deklarieren Firebase Bibliothek Abhängigkeiten , ohne die BoM mit

    Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

    Beachten Sie, dass , wenn Sie mehrere Firebase Bibliotheken in Ihrer Anwendung verwenden wir mit der BoM empfehlen Bibliothek Versionen zu verwalten, die sicherstellt , dass alle Versionen kompatibel sind.

    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.2'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // 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'
    }
    

    Durch die Verwendung des Firebase Android BoM werden, Ihre App immer kompatible Versionen der Firebase Android - Bibliotheken verwenden.

    (Alternative) Deklarieren Firebase Bibliothek Abhängigkeiten , ohne die BoM mit

    Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

    Beachten Sie, dass , wenn Sie mehrere Firebase Bibliotheken in Ihrer Anwendung verwenden wir mit der BoM empfehlen Bibliothek Versionen zu verwalten, die sicherstellt , dass alle Versionen kompatibel sind.

    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.2'
    }
    
  3. In der Firebase Konsole öffnet Abschnitt des dynamischen Links. Akzeptieren Sie die Nutzungsbedingungen, wenn Sie dazu aufgefordert werden.

Wie bei Normal Deep - Links , müssen Sie einen neuen Intent - Filter auf die Aktivität hinzufügen , die Deep - Links für Ihre Anwendung behandelt. Der Intent-Filter sollte Deep-Links Ihrer Domain erfassen, da der dynamische Link auf Ihre Domain umleitet, wenn Ihre App installiert ist. Dies ist erforderlich, damit Ihre App die Dynamic Link-Daten erhält, nachdem sie aus dem Play Store installiert/aktualisiert und auf die Schaltfläche Weiter geklickt wurde. 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>

Wenn Benutzer einen dynamischen Link mit einem Deep-Link zu dem von Ihnen angegebenen Schema und Host öffnen, startet Ihre App die Aktivität mit diesem Intent-Filter, um den Link zu verarbeiten.

Um die tiefe Verbindung zu erhalten, rufen Sie das getDynamicLink() Methode:

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

Sie müssen rufen getDynamicLink() in jeder Aktivität , die durch den Link gestartet werden könnte, auch wenn die Verbindung von der Absicht Verwendung verfügbar sein könnte getIntent().getData() . Der Aufruf getDynamicLink() ruft den Link und löscht die Daten , so dass es nur einmal durch Ihre Anwendung verarbeitet wird.

Sie rufen normalerweise getDynamicLink() in der Haupttätigkeit sowie alle durch Vorsatz Filter gestartet Aktivitäten , die den Link anzeigen lassen.

Datensatzanalysen

Die folgenden Ereignisse können in Google Analytics automatisch nachverfolgt und in der Firebase-Konsole angezeigt werden.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Um diese Ereignisse zu registrieren, müssen Sie Google Analytics konfigurieren, bevor Sie den Deep-Link abrufen. Überprüfen Sie, ob die folgenden Bedingungen erfüllt sind:

  • Rufen Sie FirebaseDynamicLinks.getDynamicLink() in Ihrer Anwendung Einspeisepunkte:
    • Launcher-Aktivitäten. zB: action="android.intent.action.MAIN" , category="android.intent.category.LAUNCHER" .
    • Einstiegspunkte für Aktivitäten. zB: onStart() , onCreate() .
    • Deep-Link-Aktivitäten.
  • Einrichten und Verwenden von Google Analytics:
    • Beziehen Sie die Google Analytics-Abhängigkeit ein. Dies wird in der Regel durch die automatisch hinzugefügt google-services Gradle Plugin.
    • Fügen Sie die google-services.json config - Datei in Ihrer Anwendung.
    • Rufen Sie FirebaseAnalytics.getInstance() vor dem Aufruf FirebaseDynamicLinks.getDynamicLink() .

Auf Android 6.0 (API - Ebene 23) und höher, können Sie Ihre App einrichten, um dynamische Links direkt bei Ihrer Anwendung behandeln bereits unter Verwendung installiert ist Android App Verbindungen .

Stellen Sie sicher , dass Sie das SHA256 Zertifikat Fingerabdruck für Ihre Anwendung in Ihr Projekt in der hinzugefügt Firebase Konsole . Dynamic Links übernimmt die Einrichtung der App Links-Website-Verknüpfung für Ihre Dynamic Links-Domain.

Fügen Sie ein Auto-prüft Intent - Filter auf die Aktivität, die das Dynamic Link behandelt, die Einstellung der Host auf Ihre Projekt Domain Dynamische Verbindungen wie in der Firebase Konsole gefunden . Im 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>

Beachten Sie, dass der android:host - android:host muss auf Ihre dynamischen Link Domain festgelegt werden, und nicht mit der Domain des Deep - Link.

Alles autoVerify Absicht Filter in Ihrem Manifest muss für App Verbindungen registriert sein , um zu engagieren. Firebase übernimmt diese automatisch für Ihre dynamische Links Domains, aber Sie können dies überprüfen , indem die Öffnung assetlinks.json Datei gehostet auf dynamische Links Domain:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Alle Ihre apps Firebase Paketnamen enthalten sein sollten.

Dynamische Links werden jetzt direkt an Ihre App gesendet. Sie werden in der Lage , den Deep - Link und andere Dynamic Link - Daten zu erhalten durch den Aufruf getDynamicLink() in der Aktivität hinzugefügt Sie die App Verbindungen Intent - Filter auf (wie in beschrieben Griff Deep - Links ).

Hinweis: Da rufenden durch App Verbindungen führt den Benutzer direkt auf die App, ein Dynamic Link kann die erforderliche Mindestversion nicht ehren. Also , wenn die App geöffnet ist, müssen Sie die Dynamic Link-Minimalversion (zum Vergleich getminimumappversion ) gegen PackageInfo.versionCode und den Benutzer umleiten die App zu aktualisieren , wenn verwendet erforderlich getUpdateAppIntent .