Dynamische Links in einer Flutter-App erstellen

Sie können kurze oder lange Dynamic Links mit der Firebase Dynamic Links Builder API erstellen. Diese API akzeptiert entweder einen langen dynamischen Link oder ein Objekt mit dynamischen Link-Parametern und gibt URLs wie in den folgenden Beispielen zurück:

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

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.

  1. Installieren und initialisieren Sie die Firebase SDKs für Flutter, falls noch nicht geschehen.

  2. Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Dynamic Links-Plug-in zu installieren:

    flutter pub add firebase_dynamic_links
    
  3. Wenn Sie eine Android-App entwickeln, öffnen Sie in der Firebase Console die Seite Projekteinstellungen und prüfen Sie, ob Sie Ihren SHA-1-Signaturschlüssel angegeben haben. Wenn Sie App-Links verwenden, geben Sie auch Ihren SHA-256-Schlüssel an.

  4. Öffnen Sie in der Firebase Console den Abschnitt Dynamic Links.

    1. Wenn Sie noch keine Domain für Ihre Dynamic Links eingerichtet haben, klicken Sie auf die Schaltfläche Jetzt starten und folgen Sie der Anleitung.

      Wenn Sie bereits eine Dynamic Links-Domain haben, notieren Sie sich diese. Sie müssen eine Dynamic Links-Domain angeben, wenn Sie Dynamic Links programmatisch erstellen.

    2. Empfohlen: Geben Sie im Menü „Mehr“ (⋮) die URL-Muster an, die in Ihren Deeplinks und Fallback-Links zulässig sind. So verhindern Sie, dass nicht autorisierte Dritte Dynamic Links erstellen, die von Ihrer Domain zu Websites weiterleiten, die nicht von Ihnen verwaltet werden.

      Weitere Informationen finden Sie unter Bestimmte URL-Muster zulassen.

Wenn Sie einen dynamischen Link erstellen möchten, erstellen Sie ein neues DynamicLinkParameters-Objekt und übergeben Sie es an buildLink() oder buildShortLink().

Im folgenden Minimalbeispiel wird ein langer dynamischer Link zu https://www.example.com/ erstellt, der auf Android-Geräten mit com.example.app.android und auf iOS-Geräten mit der App com.example.app.ios geöffnet wird:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);

Wenn du einen kurzen dynamischen Link erstellen möchtest, übergebe das DynamicLinkParameters-Objekt an buildShortLink(). Zum Erstellen des Kurzlinks ist ein Netzwerkaufruf erforderlich. Beispiel:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

Standardmäßig werden kurze dynamische Links mit Suffixen generiert, die nur wenige Zeichen lang sind. Dadurch werden Links zwar kompakter, aber es besteht auch die Gefahr, dass jemand einen gültigen Kurzlink erraten kann. Oft ist das nicht weiter schlimm, da der Link zu öffentlichen Informationen führt.

Wenn die kurzen Links jedoch zu nutzerspezifischen Informationen führen, sollten Sie längere Links mit 17 Zeichen erstellen. Dadurch ist es sehr unwahrscheinlich, dass jemand einen gültigen dynamischen Link erraten kann. Dazu übergeben Sie ShortDynamicLinkType.unguessable an die Methode buildShortLink():

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

Mit der Dynamic Link Builder API kannst du dynamische Links mit allen unterstützten Parametern erstellen. Siehe API-Referenz.

Im folgenden Beispiel wird ein dynamischer Link mit mehreren gängigen Parametern erstellt:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(
    packageName: "com.example.app.android",
    minimumVersion: 30,
  ),
  iosParameters: const IOSParameters(
    bundleId: "com.example.app.ios",
    appStoreId: "123456789",
    minimumVersion: "1.0.1",
  ),
  googleAnalyticsParameters: const GoogleAnalyticsParameters(
    source: "twitter",
    medium: "social",
    campaign: "example-promo",
  ),
  socialMetaTagParameters: SocialMetaTagParameters(
    title: "Example of a Dynamic Link",
    imageUrl: Uri.parse("https://example.com/image.png"),
  ),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

Du kannst Dynamic Link-Parameter mit den folgenden Methoden festlegen:

DynamicLink-Parameter
setLink Der Link, über den Ihre App geöffnet wird. Geben Sie eine URL an, die von Ihrer App verarbeitet werden kann. In der Regel ist das der Inhalt oder die Nutzlast der App, über die appspezifische Logik ausgelöst wird, z. B. das Gutschreiben eines Gutscheins für den Nutzer oder das Einblenden eines Begrüßungsbildschirms. Dieser Link muss eine korrekt formatierte URL sein, richtig URL-codiert sein, entweder HTTP oder HTTPS verwenden und darf kein anderer dynamischer Link sein.
setDomainUriPrefix Das URL-Präfix für Dynamic Links, das Sie in der Firebase Console finden. Eine Dynamic Link-Domain sieht in etwa 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 hier an, was passieren soll, wenn die App nicht installiert ist. Sie können beispielsweise die mobile Webversion der Inhalte öffnen oder eine Werbeseite für Ihre App anzeigen lassen.
setMinimumVersion Der versionCode der Mindestversion der 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 (App-Shop-ID) Die App Store-ID deiner 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 diese Option an, wenn bei nicht installierter App etwas anderes als die Installation der App aus dem App Store erfolgen soll, z. B. das Öffnen der mobilen Webversion der Inhalte oder das Anzeigen einer Werbeseite für Ihre App.
setCustomScheme Das benutzerdefinierte URL-Schema Ihrer App, sofern es nicht mit der Bundle-ID Ihrer App übereinstimmt
setIpadFallbackUrl Der Link, der auf iPads geöffnet werden soll, wenn die App nicht installiert ist. Gib diese Option an, wenn deine App nicht aus dem App Store installiert werden soll, obwohl sie nicht installiert ist. Du kannst beispielsweise die Webversion der Inhalte öffnen oder eine Werbeseite für deine App anzeigen.
SetIpadBundleId (setIpadBundleId) Die Bundle-ID der iOS-App, die auf iPads verwendet werden soll, um den Link zu öffnen. Die App muss auf der Übersichtsseite der Firebase Console mit Ihrem Projekt verknüpft 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 dann entscheiden, was damit geschehen soll.
NavigationInfoParameters
setForcedRedirectEnabled Wenn „1“ festgelegt ist, wird die Seite mit der App-Vorschau übersprungen, wenn der dynamische Link geöffnet wird, und stattdessen wird eine Weiterleitung zur App oder zum Store ausgeführt. Über die App-Vorschauseite (standardmäßig aktiviert) können Nutzer zuverlässiger an das am besten geeignete Ziel weitergeleitet werden, wenn sie Dynamic Links in Apps öffnen. Wenn Sie jedoch davon ausgehen, dass ein Dynamic Link nur in Apps geöffnet werden soll, 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-Geräten auf das Verhalten des Dynamic Links aus.
SocialMetaTagParameters
setTitle Der Titel, der verwendet werden soll, wenn der dynamische Link in einem Beitrag in sozialen Medien geteilt wird.
setDescription Die Beschreibung, die verwendet wird, wenn der dynamische Link in einem Beitrag in einem sozialen Netzwerk geteilt wird.
Bild-URL festlegen Die URL zu einem Bild, das mit diesem Link verknüpft ist. Das Bild sollte mindestens 300 × 200 Pixel groß und kleiner als 300 KB 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 Linknutzlast angehängt.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect-Analyseparameter Diese Parameter ("pt", "at", "ct") werden an den App Store übergeben.