Damit Sie die Firebase Dynamic Links erhalten können, die
Sie erstellt haben, müssen Sie das Dynamic Links SDK in Ihre App einbinden und die
FirebaseDynamicLinks.getDynamicLink() Methode aufrufen, wenn Ihre App geladen wird, um
die in der Dynamic Link übergebenen Daten zu erhalten.
Firebase und das Dynamic Links SDK einrichten
Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen.
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 Ihres Moduls (auf Anwendungsebene) (in der Regel
<project>/<app-module>/build.gradle.ktsoder<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 Bibliotheksversionierung zu steuern.Für eine optimale Nutzung von Dynamic Links empfehlen wir die Aktivierung von Google Analytics in Ihrem Firebase-Projekt und das Hinzufügen des Firebase SDK für Google Analytics zu Ihrer App.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.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' }
Wenn Sie die Firebase Android BoM, verwenden, werden in Ihrer App immer kompatible Versionen von Firebase Android-Bibliotheken verwendet.
(Alternative) Firebase-Bibliotheksabhängigkeiten ohne BoM hinzufügen
Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie die Version jeder Firebase-Bibliothek in der entsprechenden Abhängigkeitszeile angeben.
Wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen wir dringend, die BoM zur Verwaltung der Bibliotheksversionen zu verwenden. 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:23.2.0' }
- Öffnen Sie in der Firebase Konsole den Dynamic Links Bereich. 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 abfangen, da der
Dynamic Link zu Ihrer Domain weiterleitet, wenn Ihre App installiert ist. Dies ist erforderlich, damit Ihre App die Dynamic Link Daten empfangen kann, nachdem sie im Play Store installiert oder aktualisiert wurde und ein Nutzer auf die Schaltfläche „Weiter“ tippt. 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 einen 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 getIntent().getData() im Intent verfügbar ist. Durch den Aufruf von getDynamicLink() wird der Link abgerufen und diese Daten werden gelöscht, damit sie nur einmal von Ihrer App verarbeitet werden.
Normalerweise rufen Sie getDynamicLink() in der Hauptaktivität sowie in allen Aktivitäten auf, die über Intent-Filter gestartet werden, die mit dem Link übereinstimmen.
Analysen aufzeichnen
Die folgenden Ereignisse können automatisch in Google Analytics erfasst und in der Firebase Konsole angezeigt werden.
dynamic_link_app_opendynamic_link_first_opendynamic_link_app_update
Damit diese Ereignisse erfasst werden können, 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". - Aktivitätseinstiegspunkte, z. B.:
onStart(),onCreate(). - Deeplink-Aktivitäten.
- Google Analytics einrichten und verwenden:
- Fügen Sie die Google Analytics Abhängigkeit hinzu. Sie wird in der Regel automatisch vom
google-servicesGradle-Plug-in hinzugefügt. - Fügen Sie die
Konfigurationsdatei in Ihre App ein.
google-services.json - Rufen Sie
FirebaseAnalytics.getInstance()auf, bevor SieFirebaseDynamicLinks.getDynamicLink()aufrufen.
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 werden, wenn Ihre App bereits installiert ist. Verwenden Sie dazu Android-App-Links.
Achten Sie darauf, dass Sie den SHA‑256-Zertifikat-Fingerabdruck für Ihre App in der Firebase Konsole zu Ihrem Projekt hinzugefügt haben. Dynamic Links richtet die Websitezuordnung für App-Links 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 auf die Dynamic Links Domain Ihres Projekts fest, wie
in der Firebase Konsole angegeben. In
the 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 die android:host auf Ihre Dynamic Links Domain und nicht auf die Domain
Ihres Deeplinks festgelegt werden muss.
Alle autoVerify-Intent-Filter in Ihrem Manifest müssen registriert sein, damit App
-Links verwendet werden können. Firebase erledigt das automatisch für Ihre Dynamic Links Domains. Sie können das aber prüfen,
indem Sie die Datei assetlinks.json öffnen, die in Ihrer Dynamic Links Domain gehostet wird:
https://YOUR_DOMAIN/.well-known/assetlinks.json
Dynamic Links werden 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 (siehe
Deeplinks verarbeiten).
Hinweis: Da Nutzer über App-Links direkt zur App weitergeleitet werden, kann bei einem Dynamic Link die erforderliche Mindestversion nicht berücksichtigt werden. Sobald die App geöffnet wird, müssen Sie die Mindestversion des Dynamic Links ( getminimumappversion) mit PackageInfo.versionCode vergleichen und den Nutzer gegebenenfalls mit getUpdateAppIntent auffordern, die App zu aktualisieren.