Mit der Firebase Dynamic Links Builder API können Sie kurze oder lange dynamische Links erstellen. Diese API akzeptiert entweder einen langen dynamischen Link oder ein Objekt, das Parameter für dynamische Links enthält, und gibt URLs wie in den folgenden Beispielen zurück:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Richten Sie Firebase und das Dynamic Links SDK ein
Bevor Sie dynamische Links in Ihrer Android-App erstellen können, müssen Sie das Firebase SDK einbinden. Wenn Ihre App für den Empfang dynamischer 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 Sie dies noch nicht getan haben .
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 Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise
<project>/<app-module>/build.gradle
) die Abhängigkeit für die Dynamic Links Android-Bibliothek hinzu. Wir empfehlen die Verwendung der Firebase Android BoM zur Steuerung der Bibliotheksversionierung.Für ein optimales Erlebnis mit dynamischen Links empfehlen wir, Google Analytics in Ihrem Firebase-Projekt zu aktivieren und Ihrer App das Firebase SDK für Google Analytics hinzuzufügen.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.3') // 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-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen von Firebase Android-Bibliotheken.
(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , 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.
Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, 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-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.3') // 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' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen von Firebase Android-Bibliotheken.
(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , 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.
Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, 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:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
- Öffnen Sie in der Firebase-Konsole den Abschnitt Dynamische Links .
Wenn Sie die Nutzungsbedingungen noch nicht akzeptiert und eine Domain für Ihre dynamischen Links festgelegt haben, tun Sie dies, wenn Sie dazu aufgefordert werden.
Wenn Sie bereits eine Domain mit dynamischen Links haben, notieren Sie sich diese. Sie müssen eine Domäne für dynamische Links bereitstellen, wenn Sie dynamische Links programmgesteuert erstellen.
- Empfohlen : Geben Sie die in Ihren Deep-Links und Fallback-Links zulässigen URL-Muster an. Dadurch hindern Sie Unbefugte daran, dynamische Links zu erstellen, die von Ihrer Domain auf Websites weiterleiten, die Sie nicht kontrollieren. Siehe Bestimmte URL-Muster zulassen .
Verwenden Sie die Firebase-Konsole
Wenn Sie einen einzelnen dynamischen Link generieren möchten, entweder zu Testzwecken oder für Ihr Marketingteam, um einfach einen Link zu erstellen, der beispielsweise in einem Social-Media-Beitrag verwendet werden kann, ist es am einfachsten, die Firebase-Konsole zu besuchen und einen zu erstellen manuell dem Schritt-für-Schritt-Formular folgen.
Erstellen Sie einen dynamischen Link aus Parametern
Um einen dynamischen Link zu erstellen, erstellen Sie ein neues
DynamicLink
Objekt mit seinem Builder, indem Sie die Dynamic Link-Parameter mit den Builder-Methoden angeben. Rufen Sie dannbuildDynamicLink
oderbuildShortDynamicLink
auf.Das folgende Minimalbeispiel erstellt einen langen dynamischen Link zu
https://www.example.com/
, der mit Ihrer Android-App auf Android und der Appcom.example.ios
auf iOS geöffnet wird:Kotlin+KTX
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 einen kurzen dynamischen Link zu erstellen, erstellen Sie einen
DynamicLink
auf die gleiche Weise und rufen Sie dannbuildShortDynamicLink
auf. Das Erstellen eines Kurzlinks erfordert einen Netzwerkaufruf. Anstatt den Link direkt zurückzugeben, gibtbuildShortDynamicLink
einenTask
zurück, der den Kurzlink verfügbar macht, wenn die Anforderung abgeschlossen ist. Zum Beispiel:Kotlin+KTX
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.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.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 dynamische Links mit 17-stelligen Link-Suffixen generiert, die es äußerst unwahrscheinlich machen, dass jemand einen gültigen dynamischen Link erraten kann. Wenn es für Ihren Anwendungsfall nicht schadet, wenn jemand erfolgreich einen Kurzlink errät, ziehen Sie es vielleicht vor, Suffixe zu generieren, die nur so lang wie nötig sind, um eindeutig zu sein, was Sie tun können, indem Sie
ShortDynamicLink.Suffix.SHORT
an diebuildShortDynamicLink
-Methode übergeben :Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
Dynamic Link-Parameter
Sie können die Dynamic Link Builder API verwenden, um dynamische Links mit jedem der unterstützten Parameter zu erstellen. Einzelheiten finden Sie in der API-Referenz .
Das folgende Beispiel erstellt einen dynamischen Link mit mehreren allgemeinen Parametersätzen:
Kotlin+KTX
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 einstellen:
DynamicLink-Parameter setLink Der Link, mit dem Ihre App geöffnet wird. Geben Sie eine URL an, die Ihre App verarbeiten kann, in der Regel der Inhalt oder die Nutzlast der App, die eine App-spezifische Logik initiiert (z. B. dem Benutzer einen Coupon gutschreibt oder einen Willkommensbildschirm anzeigt). Dieser Link muss eine gut formatierte URL sein, ordnungsgemäß URL-codiert sein, entweder HTTP oder HTTPS verwenden und darf kein weiterer dynamischer Link sein.
setDomainUriPräfix Ihr URL-Präfix für den dynamischen Link, das Sie in der Firebase-Konsole finden. Eine Domäne mit dynamischem Link sieht wie in den folgenden Beispielen aus: https://example.com/link https://example.page.link
AndroidParameter setFallbackUrl Der Link zum Öffnen, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als Ihre App aus dem Play Store zu installieren, wenn die App nicht installiert ist, z. B. die mobile Webversion des Inhalts zu öffnen oder eine Werbeseite für Ihre App anzuzeigen. setMinimumVersion Der versionCode
der Mindestversion Ihrer App, die den Link öffnen kann. Wenn es sich bei der installierten App um eine ältere Version handelt, wird der Benutzer zum Play Store weitergeleitet, um die App zu aktualisieren.IosParameter setAppStoreId Die App Store-ID Ihrer App, die verwendet wird, um Benutzer an den App Store weiterzuleiten, wenn die App nicht installiert ist setFallbackUrl Der Link zum Öffnen, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als Ihre App aus dem App Store zu installieren, wenn die App nicht installiert ist, z. B. die mobile Webversion des Inhalts zu öffnen oder eine Werbeseite für Ihre App anzuzeigen. setCustomScheme Das benutzerdefinierte URL-Schema Ihrer App, falls als etwas anderes als die Paket-ID Ihrer App definiert setIpadFallbackUrl Der Link zum Öffnen auf iPads, wenn die App nicht installiert ist. Geben Sie dies an, um etwas anderes zu tun, als Ihre App aus dem App Store zu installieren, wenn die App nicht installiert ist, z. B. die Webversion des Inhalts zu öffnen oder eine Werbeseite für Ihre App anzuzeigen. setIpadBundleId Die Paket-ID der iOS-App, die auf iPads verwendet werden soll, um den Link zu öffnen. Die App muss über die Übersichtsseite der Firebase-Konsole mit Ihrem Projekt verbunden sein. setMinimumVersion Die Versionsnummer der Mindestversion Ihrer App, die den Link öffnen kann. Dieses Flag wird beim Öffnen an Ihre App übergeben, und Ihre App muss entscheiden, was damit geschehen soll. NavigationsInfoParameter setForcedRedirectEnabled Wenn der Wert auf „1“ gesetzt ist, wird die App-Vorschauseite übersprungen, wenn der dynamische Link geöffnet wird, und stattdessen zur App oder zum Store weitergeleitet. Die App-Vorschauseite (standardmäßig aktiviert) kann Benutzer zuverlässiger an das am besten geeignete Ziel senden, wenn sie dynamische Links in Apps öffnen; Wenn Sie jedoch erwarten, dass ein dynamischer Link nur in Apps geöffnet wird, die dynamische Links zuverlässig ohne diese Seite öffnen können, können Sie ihn mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur auf iOS auf das Verhalten des dynamischen Links aus. SocialMetaTagParameter setTitle Der zu verwendende Titel, wenn der dynamische Link in einem sozialen Beitrag geteilt wird. setBeschreibung Die zu verwendende Beschreibung, wenn der dynamische Link in einem sozialen Beitrag geteilt wird. setImageUrl Die URL zu einem Bild, das sich auf diesen Link bezieht. Das Bild sollte mindestens 300 x 200 Pixel und weniger als 300 KB groß sein. Google Analytics-Parameter setSource
setMittel
setKampagne
setTerm
setContentAnalyseparameter von Google Play. Diese Parameter ( utm_source
,utm_medium
,utm_campaign
,utm_term
,utm_content
) werden sowohl an den Play Store weitergegeben als auch an die Link-Payload angehängt.ItunesConnectAnalyticsParameters setProviderToken
setAffiliateToken
setCampaignTokeniTunes Connect-Analyseparameter. Diese Parameter ( pt
,at
,ct
) werden an den App Store übergeben.Kürzen Sie einen langen dynamischen Link
Um einen langen dynamischen Link zu kürzen, geben Sie die URL des dynamischen Links mit
setLongLink
an, anstatt Parameter mit den anderen Builder-Methoden festzulegen:Kotlin+KTX
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.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.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 // ... } } });
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2023-03-07 (UTC).
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Benötigte Informationen nicht gefunden" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Zu umständlich/zu viele Schritte" },{ "type": "thumb-down", "id": "outOfDate", "label":"Nicht mehr aktuell" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problem mit der Übersetzung" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Problem mit Beispielen/Code" },{ "type": "thumb-down", "id": "otherDown", "label":"Sonstiges" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Leicht verständlich" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Mein Problem wurde gelöst" },{ "type": "thumb-up", "id": "otherUp", "label":"Sonstiges" }]