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 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.
-
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' }
- Öffnen Sie in der Firebase-Konsole den Dynamic Links. . Akzeptieren Sie die Nutzungsbedingungen, wenn Sie dazu aufgefordert werden.
Intent-Filter für Deeplinks hinzufügen
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.
Mit Deeplinks umgehen
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 anrufenFirebaseDynamicLinks.getDynamicLink()
.
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-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
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