Firebase Dynamic Links auf Android erhalten

Wenn Sie die Firebase Dynamic Links erhalten möchten, die Sie erstellt haben, müssen Sie das Dynamic Links SDK in Ihre App einbinden und die Methode FirebaseDynamicLinks.getDynamicLink() beim Laden Ihrer App aufrufen, um die in der Dynamic Link übergebenen Daten abzurufen.

  1. Falls noch nicht geschehen, Fügen Sie Firebase zu Ihrem Android-Projekt hinzu.

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

  2. In der Gradle-Datei des Moduls (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle) Fügen Sie die Abhängigkeit für die Dynamic Links-Bibliothek für Android hinzu. Wir empfehlen die Verwendung des Firebase Android BoM um die Versionsverwaltung der Bibliothek zu steuern.

    Für eine optimale Nutzung von Dynamic Links empfehlen wir Google Analytics wird aktiviert in Ihrem Firebase-Projekt und fügen Ihrer App das Firebase SDK für Google Analytics hinzu.

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

    Mit dem Firebase Android BoM Ihre App verwendet immer kompatible Versionen der Firebase Android Libraries.

    (Alternative) Firebase-Bibliotheksabhängigkeiten ohne BoM hinzufügen

    Wenn Sie Firebase BoM nicht verwenden, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.

    Wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen, Bibliotheksversionen mit der BoM zu verwalten. Dadurch wird sichergestellt, dass alle Versionen kompatibel.

    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.1.0'
    }
    Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Beginnt in Oktober 2023 (Firebase BoM 32.5.0) können sowohl Kotlin- als auch Java-Entwickler sind vom Modul der Hauptbibliothek abhängig (Details finden Sie in der FAQs zu dieser Initiative).
  3. Öffnen Sie in der Firebase-Konsole den Dynamic Links. . Akzeptieren Sie die Nutzungsbedingungen, wenn Sie dazu aufgefordert werden.

Wie bei einfach Deeplinks verwenden, müssen Sie der Aktivität, die Deeplinks für Ihre App. Der Intent-Filter sollte Deeplinks Ihrer Domain erfassen, da das Ereignis Dynamic Link leitet zu deiner Domain weiter, wenn deine App installiert ist. Dies ist erforderlich, damit deine App nach der Installation bzw. Aktualisierung aus dem Play Store die Dynamic Link-Daten empfangen und Schaltfläche „Weiter“. 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 Nutzer eine Dynamic Link mit einem Deeplink zu dem von Ihnen angegebenen Schema und Host öffnen, wird Ihre App Starten Sie die Aktivität mit diesem Intent-Filter, um den Link zu verarbeiten.

Rufen Sie die Methode getDynamicLink() auf, um den Deeplink zu erhalten:

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

Du musst getDynamicLink() bei jeder möglichen Aktivität aufrufen über den Link gestartet, obwohl der Link im Intent verfügbar sein könnte mit getIntent().getData(). getDynamicLink() wird angerufen ruft den Link ab und löscht die Daten, sodass sie nur einmal von Ihrem

Normalerweise rufst du getDynamicLink() auch in der Hauptaktivität auf als Aktivitäten, die durch Intent-Filter gestartet werden, die mit dem Link übereinstimmen.

Analysedaten aufzeichnen

Die folgenden Ereignisse können in Google Analytics automatisch erfasst und im Firebase-Konsole.

  • dynamic_link_app_open
  • dynamic_link_first_open
  • dynamic_link_app_update

Damit Sie diese Ereignisse registrieren können, müssen Sie zuerst Google Analytics konfigurieren. und rufen Sie den Deeplink ab. Prüfen Sie, ob die folgenden Bedingungen erfüllt sind:

  • Rufen Sie FirebaseDynamicLinks.getDynamicLink() in den Einstiegspunkten Ihrer App auf:
    • Launcher-Aktivitäten. e.g.: action="android.intent.action.MAIN", category="android.intent.category.LAUNCHER".
    • Einstiegspunkte für Aktivitäten. e.g.: onStart(), onCreate().
    • Deeplink-Aktivitäten.
  • Google Analytics einrichten und verwenden:
    • Fügen Sie die Google Analytics-Abhängigkeit hinzu. Dies wird normalerweise automatisch vom google-services Gradle-Plug-in
    • Fügen Sie google-services.json-Konfigurationsdatei in Ihrer App.
    • FirebaseAnalytics.getInstance() vor dem Anruf anrufen FirebaseDynamicLinks.getDynamicLink().

Unter Android 6.0 (API-Level 23) und höher können Sie Ihre App so einrichten, dass Dynamic Links direkt verarbeitet wird, wenn Ihre App bereits installiert ist. Verwenden Sie dazu Android App-Links.

Achten Sie darauf, dass Sie den SHA256-Zertifikatfingerabdruck für Ihre App in Ihrem Projekt hinzugefügt haben. Firebase-Konsole Dynamic Links übernimmt die Einrichtung der Websiteverknüpfung für App-Links für Ihre Dynamic Links-Domain.

Fügen Sie der Aktivität, die den Dynamic Link verarbeitet, einen automatisch bestätigten Intent-Filter hinzu und legen Sie in der Dynamic Links-Domain Ihres Projekts als Sie finden sie in der Firebase-Konsole. In 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 android:host auf Ihre Dynamic Links-Domain und nicht auf die Domain festgelegt sein muss. Ihres Deeplinks.

Alle autoVerify Intent-Filter in deinem Manifest müssen für die App registriert sein Links zur Interaktion Firebase verarbeitet dies automatisch für Ihre Dynamic Links-Domains. Sie können aber auch Öffnen Sie dazu die Datei assetlinks.json, die in Ihrer Dynamic Links-Domain gehostet wird:

https://YOUR_DOMAIN/.well-known/assetlinks.json
Alle Ihre Firebase-Apps Paketnamen angegeben werden.

Dynamic Links wird jetzt direkt an deine App gesendet. Sie können dann den Deeplink und andere Dynamic Link-Daten durch Aufrufen von getDynamicLink() in der Aktivität, in der Sie die App-Links hinzugefügt haben Intent-Filter (wie in Deeplinks) verarbeiten.

Hinweis:Da Nutzer beim Aufrufen über App-Links direkt zur App gelangen, wird ein Für den dynamischen Link kann die erforderliche Mindestversion nicht verwendet werden. Sobald die App geöffnet ist, Sie müssen die Mindestversion des Dynamic Link ( getminimumappversion) gegen PackageInfo.versionCode und leiten Sie den Nutzer bei Bedarf mit zum Aktualisieren der App weiter. getUpdateAppIntent