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.
Firebase und das Dynamic Links SDK einrichten
Falls noch nicht geschehen, fügen Sie Ihrem Android-Projekt Firebase hinzu.
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.
-
Fügen Sie in der Gradle-Datei des Moduls (auf Anwendungsebene) (in der Regel
<project>/<app-module>/build.gradle.kts
oder<project>/<app-module>/build.gradle
) die Abhängigkeit für die Dynamic Links-Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Versionierung der Bibliothek zu steuern.Für eine optimale Nutzung von Dynamic Links empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und Ihrer App das Firebase SDK für Google Analytics hinzuzufügen.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.7.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 der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.
Alternative: Bibliotheksabhängigkeiten für Firebase 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 wir Ihnen dringend, die Bibliotheksversionen mithilfe der BoM zu verwalten. So wird sichergestellt, dass alle Versionen kompatibel sind.
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.2' }
- Öffnen Sie in der Firebase Console den Bereich Dynamic Links. Akzeptieren Sie die Nutzungsbedingungen, wenn Sie dazu aufgefordert werden.
Intent-Filter für Deeplinks hinzufügen
Wie bei
einfachen Deeplinks müssen Sie der Aktivität, die Deeplinks für Ihre App verarbeitet, einen neuen Intent-Filter hinzufügen. Der Intent-Filter sollte Deeplinks Ihrer Domain erfassen, da die Dynamic Link zur Domain weiterleitet, wenn Ihre App installiert ist. Dies ist erforderlich, damit Ihre App die Dynamic Link-Daten empfängt, nachdem sie über den Play Store installiert oder aktualisiert wurde und der Nutzer auf die Schaltfläche „Weiter“ getippt hat. 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 zum von Ihnen angegebenen Schema und Host öffnen, startet Ihre App die Aktivität mit diesem Intent-Filter, um den Link zu verarbeiten.
Deeplinks verarbeiten
Rufen Sie die Methode getDynamicLink()
auf, um den Deeplink zu erhalten:
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); } });
Sie müssen getDynamicLink()
in jeder Aktivität aufrufen, die über den Link gestartet werden kann, auch wenn der Link über die Intent-Funktion mit getIntent().getData()
verfügbar ist. Wenn du getDynamicLink()
aufrufst, wird der Link abgerufen und die Daten werden gelöscht, sodass sie nur einmal von deiner App verarbeitet werden.
Normalerweise wird getDynamicLink()
in der Hauptaktivität sowie in allen Aktivitäten aufgerufen, die durch Intent-Filter gestartet werden, die mit dem Link übereinstimmen.
Datenanalyse
Die folgenden Ereignisse können automatisch in Google Analytics erfasst und in der Firebase-Konsole angezeigt werden.
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
Wenn Sie diese Ereignisse registrieren möchten, müssen Sie Google Analytics konfigurieren, bevor Sie den Deeplink abrufen. Prüfen Sie, ob die folgenden Bedingungen erfüllt sind:
- Rufen Sie
FirebaseDynamicLinks.getDynamicLink()
in den Einstiegspunkten Ihrer App auf: - Launcher-Aktivitäten, z. B.:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Einstiegspunkte für Aktivitäten, z. B.:
onStart()
,onCreate()
. - Deeplink-Aktivitäten
- So richten Sie Google Analytics ein und verwenden es:
- Fügen Sie die Google Analytics-Abhängigkeit hinzu. Dieser wird normalerweise automatisch vom
google-services
Gradle-Plug-in hinzugefügt. - Fügen Sie die Konfigurationsdatei
google-services.json
in Ihre App ein. - Rufen Sie
FirebaseAnalytics.getInstance()
an, bevor SieFirebaseDynamicLinks.getDynamicLink()
anrufen.
Dynamic Links mit App-Links verarbeiten
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-Zertifikatsfingerabdruck für Ihre App in der Firebase Console Ihrem Projekt hinzugefügt haben. Dynamic Links richtet die App-Links-Websiteverknüpfung für Ihre Dynamic Links-Domain ein.
Fügen Sie der Aktivität, die den Dynamic Link verarbeitet, einen automatisch bestätigten Intent-Filter hinzu und legen Sie den Host als Dynamic Links-Domain Ihres Projekts fest, wie in der Firebase-Konsole angegeben. In der 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 Ihres Deeplinks festgelegt sein muss.
Alle autoVerify
Intent-Filter in Ihrem Manifest müssen registriert sein, damit App-Links aktiviert werden können. Firebase kümmert sich automatisch um Ihre Dynamic Links-Domains. Sie können dies jedoch überprüfen, indem Sie die assetlinks.json
-Datei öffnen, die auf Ihrer Dynamic Links-Domain gehostet wird:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links wird jetzt direkt an Ihre App gesendet. Sie können den Deeplink und andere Dynamic Link-Daten abrufen, indem Sie getDynamicLink()
in der Aktivität aufrufen, der Sie den Intent-Filter für App-Links hinzugefügt haben (wie unter Deeplinks verarbeiten beschrieben).
Hinweis:Da Nutzer über App-Links direkt zur App weitergeleitet werden, kann ein dynamischer Link die erforderliche Mindestversion nicht einhalten. Wenn die App geöffnet wurde, müssen Sie die Mindestversion des dynamischen Links ( getminimumappversion) mit PackageInfo.versionCode vergleichen und den Nutzer bei Bedarf mit getUpdateAppIntent zum Aktualisieren der App weiterleiten.