Um die von Ihnen erstellten Firebase Dynamic Links zu erhalten, müssen Sie das Dynamic Links SDK in Ihre App aufnehmen und beim FirebaseDynamicLinks.getDynamicLink()
Ihrer App die FirebaseDynamicLinks.getDynamicLink()
-Methode aufrufen, um die Daten in den Dynamic Link zu übertragen.
Richten Sie Firebase und das Dynamic Links SDK ein
Wenn Sie dies noch nicht getan haben, 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 verwenden, geben Sie auch Ihren SHA-256-Schlüssel an.
Deklarieren Sie mithilfe der Firebase Android BoM die Abhängigkeit für die Dynamic Links Android-Bibliothek in der Gradle-Datei Ihres Moduls (App-Ebene) (normalerweise
app/build.gradle
).Für eine optimale Erfahrung mit dynamischen Links empfehlen wir , Google Analytics in Ihrem Projekt zu aktivieren . Außerdem müssen Sie im Rahmen der Einrichtung von Analytics Ihrer App das Firebase SDK für Google Analytics hinzufügen.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.6.0') // 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' }
Bei Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.
(Alternative) Deklarieren Sie Firebase-Bibliotheksabhängigkeiten, ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, 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:19.1.1' implementation 'com.google.firebase:firebase-analytics:18.0.2' }
Kotlin + KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.6.0') // 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' }
Bei Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.
(Alternative) Deklarieren Sie Firebase-Bibliotheksabhängigkeiten, ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die Stückliste zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, 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:19.1.1' implementation 'com.google.firebase:firebase-analytics-ktx:18.0.2' }
- Öffnen Sie in der Firebase-Konsole den Abschnitt Dynamische Links . Akzeptieren Sie die Nutzungsbedingungen, wenn Sie dazu aufgefordert werden.
Fügen Sie einen Absichtsfilter für Deep Links hinzu
Wie bei einfachen Deep Links müssen Sie der Aktivität, die Deep Links für Ihre App verarbeitet, einen neuen Absichtsfilter hinzufügen. Der Absichtsfilter sollte Deep Links Ihrer Domain abfangen, da der Dynamic Link zu Ihrer Domain umleitet, wenn Ihre App installiert ist. Dies ist erforderlich, damit Ihre App die Dynamic Link-Daten empfängt, nachdem sie im Play Store installiert / aktualisiert wurden und Sie auf die Schaltfläche Weiter tippen. 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 Absichtsfilter, um den Link zu verarbeiten.
Behandle tiefe Glieder
Rufen Sie die Methode
getDynamicLink()
auf, um den Deep Link zu erhalten: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
getDynamicLink()
in jeder Aktivität aufrufen, die möglicherweise über den Link gestartet wird, obwohl der Link möglicherweise über die Absicht mitgetIntent().getData()
verfügbar istgetIntent().getData()
. Durch Aufrufen vongetDynamicLink()
der Link abgerufen und diese DatengetDynamicLink()
, sodass sie von Ihrer App nur einmal verarbeitet werden.Normalerweise rufen Sie
getDynamicLink()
in der Hauptaktivität sowie alle Aktivitäten auf, die von Absichtsfiltern gestartet werden, die dem Link entsprechen.Analyse aufzeichnen
Die folgenden Ereignisse können in Google Analytics automatisch verfolgt 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 Ihren App-Einstiegspunkten auf: - Launcher-Aktivitäten. Beispiel:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - Aktivitätseinstiegspunkte. Beispiel:
onStart()
,onCreate()
. - Deep Link-Aktivitäten.
- Einrichten und Verwenden von Google Analytics:
- Schließen Sie die Google Analytics-Abhängigkeit ein. Dies wird normalerweise automatisch vom Gradle-Plugin der
google-services
hinzugefügt. - Fügen Sie die Konfigurationsdatei
google-services.json
in Ihre App ein. - Rufen Sie
FirebaseAnalytics.getInstance()
vor dem AufrufFirebaseDynamicLinks.getDynamicLink()
.
Umgang mit dynamischen Links mithilfe von App-Links
Unter Android 6.0 (API-Stufe 23) und höher können Sie Ihre App so einrichten, dass sie dynamische Links direkt verarbeitet, wenn Ihre App bereits mithilfe von Android App Links installiert ist.
Stellen Sie sicher, dass Sie den SHA256-Zertifikatfingerabdruck für Ihre App zu Ihrem Projekt in der Firebase-Konsole hinzugefügt haben. Dynamic Links übernimmt das Einrichten der App Links-Website-Zuordnung für Ihre Dynamic Links-Domain.
Fügen Sie der Aktivität, die den dynamischen Link verarbeitet, einen automatisch überprüften Absichtsfilter hinzu, und setzen Sie den Host auf die Domäne "Dynamische Links" Ihres Projekts, wie sie in der Firebase-Konsole zu finden ist . 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 der
android:host
auf Ihre Dynamic Links-Domain und nicht auf die Domain Ihres Deep Links eingestellt sein muss.Alle
autoVerify
Absichtsfilter in Ihrem Manifest müssen registriert sein, damit App-LinksautoVerify
. Firebase übernimmt dies automatisch für Ihre Dynamic Links-Domains. Sie können dies jedoch überprüfen, indem Sie die Dateiassetlinks.json
, die auf Ihrer Dynamic Links-Domain gehostet wird:https://YOUR_DOMAIN/.well-known/assetlinks.json
Alle Paketnamen Ihrer Firebase-Apps sollten enthalten sein.Dynamische Links werden jetzt direkt an Ihre App gesendet. Sie können den Deep Link und andere Dynamic Link-Daten
getDynamicLink()
indem SiegetDynamicLink()
in der Aktivität aufrufen, zu der Sie den App Links-Absichtsfilter hinzugefügt haben (wie unter Behandeln von Deep Links beschrieben ).Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-10-06 UTC.