Mit der Firebase Dynamic Links Builder API können Sie kurze oder lange Dynamic Links erstellen. Diese API akzeptiert entweder einen langen Dynamic Link oder ein Objekt mit Dynamic Link-Parametern und gibt URLs wie in den folgenden Beispielen zurück:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Firebase und das Dynamic Links SDK einrichten
Bevor Sie Dynamic Links in Ihrer Android-App erstellen können, müssen Sie das Firebase SDK einbinden. Wenn Ihre App für den Empfang von Dynamic Links eingerichtet ist, haben Sie diese Schritte bereits ausgeführt und können diesen Abschnitt überspringen.
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 App-Ebene) (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 Versionsverwaltung der Bibliothek zu steuern.Für eine optimale Nutzung von Dynamic Links empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und das Firebase SDK für Google Analytics in Ihre App einzubinden.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.0.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) Firebase-Bibliotheksabhängigkeiten ohne Verwendung von BoM hinzufügen
Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden 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 { // 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.0.0' }
- Öffnen Sie in der Firebase Console den Bereich Dynamic Links.
-
Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und eine Domain für Ihre Dynamic Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.
Wenn Sie bereits eine Dynamic Links-Domain haben, notieren Sie sie sich. Sie müssen eine Dynamic Links-Domain angeben, wenn Sie Dynamic Links programmatisch erstellen.
- Empfohlen: Geben Sie die in Ihren Deeplinks und Fallback-Links zulässigen URL-Muster an. So verhindern Sie, dass Unbefugte Dynamic Links erstellen, die von Ihrer Domain zu Websites weiterleiten, die Sie nicht kontrollieren. Weitere Informationen finden Sie unter Bestimmte URL-Muster zulassen.
Firebase-Konsole verwenden
Wenn Sie eine einzelne Dynamic Link generieren möchten, entweder zu Testzwecken oder damit Ihr Marketingteam ganz einfach einen Link erstellen kann, der z. B. in einem Beitrag in den sozialen Medien verwendet werden kann, ist es am einfachsten, die Firebase-Konsole aufzurufen und eine Dynamic Link manuell über das Schritt-für-Schritt-Formular zu erstellen.
Dynamic Link aus Parametern erstellen
Um ein Dynamic Link zu erstellen, erstellen Sie ein neues DynamicLink
-Objekt mit seinem Builder und geben Sie die Dynamic Link-Parameter mit den Builder-Methoden an. Rufen Sie dann buildDynamicLink
oder buildShortDynamicLink
auf.
Im folgenden Minimalbeispiel wird ein langer Dynamic Link-Link zu https://www.example.com/
erstellt, der unter Android mit Ihrer Android-App und unter iOS mit der App com.example.ios
geöffnet wird:
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
Um ein kurzes Dynamic Link zu erstellen, erstellen Sie ein DynamicLink
auf dieselbe Weise und rufen Sie dann buildShortDynamicLink
auf. Zum Erstellen eines kurzen Links ist ein Netzwerkaufruf erforderlich. Anstatt den Link also direkt zurückzugeben, gibt buildShortDynamicLink
ein Task
zurück. Der kurze Link ist dann verfügbar, wenn die Anfrage abgeschlossen ist. Beispiel:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
Standardmäßig werden kurze Dynamic Links mit 17‑stelligen Link-Suffixen generiert, sodass es äußerst unwahrscheinlich ist, dass jemand eine gültige Dynamic Link erraten kann. Wenn es für Ihren Anwendungsfall kein Problem darstellt, wenn jemand einen Shortlink errät, können Sie Suffixe generieren, die nur so lang sind, wie für die Eindeutigkeit erforderlich. Dazu übergeben Sie ShortDynamicLink.Suffix.SHORT
an die Methode buildShortDynamicLink
:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
Dynamic Link Parameter
Mit der Dynamic Link Builder API können Sie Dynamic Links mit beliebigen unterstützten Parametern erstellen. Weitere Informationen finden Sie in der API-Referenz.
Im folgenden Beispiel wird ein Dynamic Link mit mehreren gängigen Parametern erstellt:
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
Sie können Dynamic Link-Parameter mit den folgenden Methoden festlegen:
Dynamic Link-Parameter | |
---|---|
setLink |
Der Link, den Ihre App öffnet. Geben Sie eine URL an, die von Ihrer App verarbeitet werden kann. Das ist in der Regel der Inhalt oder die Nutzlast der App, die eine app-spezifische Logik auslöst, z. B. das Gutschreiben eines Gutscheins oder das Anzeigen eines Begrüßungsbildschirms. Dieser Link muss eine korrekt formatierte URL sein, die richtig URL-codiert ist, entweder HTTP oder HTTPS verwendet und kein weiterer dynamischer Link sein darf. |
setDomainUriPrefix | Ihr Dynamic Link-URL-Präfix, das Sie in der Firebase-Konsole finden. Eine Dynamic Link-Domain sieht so aus:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, wenn Sie etwas anderes als die Installation Ihrer App aus dem Play Store auslösen möchten, wenn die App nicht installiert ist, z. B. die mobile Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen. |
setMinimumVersion | Die versionCode der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Wenn die installierte App eine ältere Version ist, wird der Nutzer zum Play Store weitergeleitet, um die App zu aktualisieren. |
IosParameters | |
---|---|
setAppStoreId | Die App-Store-ID Ihrer App, die verwendet wird, um Nutzer zum App Store weiterzuleiten, wenn die App nicht installiert ist |
setFallbackUrl | Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, wenn Sie etwas anderes als die Installation Ihrer App aus dem App Store ausführen möchten, wenn die App nicht installiert ist, z. B. die mobile Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen. |
setCustomScheme | Das benutzerdefinierte URL-Schema Ihrer App, falls es sich von der Bundle-ID Ihrer App unterscheidet |
setIpadFallbackUrl | Der Link, der auf iPads geöffnet werden soll, wenn die App nicht installiert ist. Geben Sie dies an, wenn Sie etwas anderes als die Installation Ihrer App aus dem App Store auslösen möchten, wenn die App nicht installiert ist, z. B. die Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen. |
setIpadBundleId | Die Bundle-ID der iOS-App, die auf iPads zum Öffnen des Links verwendet werden soll. Die App muss über die Übersichtsseite der Firebase-Konsole mit Ihrem Projekt verbunden sein. |
setMinimumVersion | Die Versionsnummer der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Dieses Flag wird an Ihre App übergeben, wenn sie geöffnet wird. Ihre App muss entscheiden, was damit geschehen soll. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | Wenn der Wert auf „1“ gesetzt ist, wird die App-Vorschauseite beim Öffnen von Dynamic Link übersprungen und stattdessen zur App oder zum Store weitergeleitet. Über die App-Vorschauseite (standardmäßig aktiviert) können Nutzer zuverlässiger zum richtigen Ziel weitergeleitet werden, wenn sie Dynamic Links in Apps öffnen. Wenn Sie jedoch erwarten, dass ein Dynamic Link nur in Apps geöffnet wird, die Dynamic Links zuverlässig ohne diese Seite öffnen können, können Sie sie mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur auf iOS auf das Verhalten von Dynamic Link aus. |
SocialMetaTagParameters | |
---|---|
setTitle | Der Titel, der verwendet werden soll, wenn Dynamic Link in einem Social-Media-Beitrag geteilt wird. |
setDescription | Die Beschreibung, die verwendet werden soll, wenn Dynamic Link in einem Social-Media-Beitrag geteilt wird. |
setImageUrl | Die URL zu einem Bild, das mit diesem Link in Verbindung steht. Das Bild sollte mindestens 300 × 200 Pixel groß und weniger als 300 KB groß sein. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Google Play-Analyseparameter Diese Parameter (utm_source , utm_medium , utm_campaign , utm_term , utm_content ) werden an den Play Store übergeben und an die Link-Nutzlast angehängt.
|
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect-Analyseparameter. Diese Parameter (pt , at , ct ) werden an den App-Shop übergeben. |
Lange Dynamic Link kürzen
Wenn Sie eine lange Dynamic Link kürzen möchten, geben Sie die URL der Dynamic Link mit setLongLink
an, anstatt Parameter mit den anderen Builder-Methoden festzulegen:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse( "https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios", ) }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });