Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Erstellen Sie dynamische Links auf Android

Sie können kurze oder lange dynamische Links mit der Firebase Dynamic Links Builder-API erstellen. Diese API akzeptiert entweder einen langen dynamischen Link oder ein Objekt, das dynamische Link-Parameter enthält, und gibt URLs wie die folgenden Beispiele zurück:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

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.

  1. 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.

  2. 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:27.0.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.3'
    }
    

    Kotlin + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:27.0.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 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-ktx:19.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:18.0.3'
    }
    
  3. Öffnen Sie in der Firebase-Konsole den Abschnitt Dynamische Links .
  4. 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 für dynamische Links haben, beachten Sie diese. Sie müssen eine Domäne für dynamische Links bereitstellen, wenn Sie programmgesteuert dynamische Links erstellen.

  5. Empfohlen : Geben Sie die URL-Muster an, die in Ihren Deep Links und Fallback-Links zulässig sind. Auf diese Weise verhindern Sie, dass Unbefugte dynamische Links erstellen, die von Ihrer Domain zu Websites umleiten, die Sie nicht kontrollieren. Siehe Zulassen bestimmter URL-Muster .

Verwenden Sie die Firebase-Konsole

Wenn Sie einen einzelnen dynamischen Link generieren möchten, entweder zu Testzwecken oder damit Ihr Marketingteam auf einfache Weise einen Link erstellen kann, der 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.

Um einen dynamischen Link zu erstellen, erstellen DynamicLink mit seinem Builder ein neues DynamicLink Objekt, und geben Sie die Dynamic Link-Parameter mit den Builder-Methoden an. Rufen Sie dann buildDynamicLink oder buildShortDynamicLink .

Das folgende minimale Beispiel erstellt einen langen dynamischen Link zu https://www.example.com/ , der mit Ihrer Android-App unter Android und der App com.example.ios unter iOS com.example.ios :

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();

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

Um einen kurzen dynamischen Link zu erstellen, erstellen Sie einen DynamicLink die gleiche Weise und rufen buildShortDynamicLink dann buildShortDynamicLink . Das Erstellen einer kurzen Verbindung erfordert einen Netzwerkaufruf. Anstatt die Verbindung direkt zurückzugeben, gibt buildShortDynamicLink eine Task , die die kurze Verbindung verfügbar macht, wenn die Anforderung abgeschlossen ist. Beispielsweise:

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
                    // ...
                }
            }
        });

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
    // ...
}

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 einen kurzen Link erfolgreich errät, ziehen Sie es möglicherweise vor, Suffixe zu generieren, die nur so lang sind, bis sie eindeutig sind. ShortDynamicLink.Suffix.SHORT können Sie tun, indem Sie ShortDynamicLink.Suffix.SHORT an die buildShortDynamicLink Methode übergeben ::

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Kotlin + KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

Sie können die Dynamic Link Builder-API verwenden, um dynamische Links mit einem der unterstützten Parameter zu erstellen. Weitere Informationen finden Sie in der API-Referenz .

Im folgenden Beispiel wird eine dynamische Verbindung mit mehreren gemeinsamen Parametersätzen erstellt:

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()

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!"
    }
}

Sie können Dynamic Link-Parameter mit den folgenden Methoden einstellen:

DynamicLink-Parameter
setLink

Der Link, den Ihre App öffnet. Geben Sie eine URL an, die Ihre App verarbeiten kann, normalerweise den Inhalt oder die Nutzlast der App, die die app-spezifische Logik initiiert (z. B. Gutschrift des Gutscheins für den Benutzer oder Anzeige eines Begrüßungsbildschirms). Dieser Link muss eine gut formatierte URL sein, ordnungsgemäß URL-codiert sein, entweder HTTP oder HTTPS verwenden und darf kein anderer dynamischer Link sein.

setDomainUriPrefix Ihr Dynamic Link URL-Präfix, das Sie in der Firebase-Konsole finden. Eine Dynamic Link-Domäne sieht wie folgt 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, 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 Die versionCode der Mindestversion der App, die den Link öffnen. Wenn es sich bei der installierten App um eine ältere Version handelt, wird der Benutzer zum Play Store weitergeleitet, um die App zu aktualisieren.
IosParameters
setAppStoreId Die App Store-ID Ihrer App, mit der Benutzer an den App Store gesendet werden, wenn die App nicht installiert ist
setFallbackUrl Der Link, der geöffnet werden soll, 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, wenn es als etwas anderes als die Bundle-ID Ihrer App definiert ist
setIpadFallbackUrl Der Link, der auf iPads geöffnet werden soll, 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 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 beim Öffnen an Ihre App übergeben, und Ihre App muss entscheiden, was damit geschehen soll.
NavigationInfoParameters
setForcedRedirectEnabled Wenn diese Option auf "1" gesetzt ist, überspringen Sie die App-Vorschauseite, wenn der dynamische Link geöffnet wird, und leiten Sie stattdessen zur App oder zum Store weiter. 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 ohne diese Seite zuverlässig öffnen können, können Sie ihn mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur unter iOS auf das Verhalten des Dynamic Link aus.
SocialMetaTagParameters
setTitle Der Titel, der verwendet werden soll, wenn der dynamische Link in einem sozialen Beitrag freigegeben wird.
setDescription Die Beschreibung, die verwendet werden soll, wenn der dynamische Link in einem sozialen Beitrag freigegeben 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.
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 weitergeleitet und an die Link-Nutzdaten angehängt.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
Analyseparameter für iTunes Connect. Diese Parameter ( pt , at , ct ) werden an den App Store übergeben.

Um einen langen dynamischen Link zu verkürzen, geben Sie die URL des dynamischen Links mit setLongLink anstatt die Parameter mit den anderen Builder-Methoden setLongLink :

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
                    // ...
                }
            }
        });

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
    // ...
}