Dynamische Links in einer Flutter-App erstellen

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 mit Parametern für dynamische Links und gibt URLs wie die folgenden Beispiele 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 erstellen, ö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 Bereich Dynamic Links.

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

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

    2. Empfohlen: Geben Sie im Dreipunkt-Menü (⋮) die URL-Muster an, die in Ihren Deeplinks und Fallback-Links zulässig sind. So verhindern Sie, dass Unbefugte Dynamic Links erstellen, die von Ihrer Domain zu Websites weiterleiten, die Sie nicht verwalten.

      Weitere Informationen finden Sie unter Bestimmte URL-Muster zulassen.

Wenn Sie einen Dynamic 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 unter Android mit com.example.app.android und unter iOS 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 Sie einen kurzen dynamischen Link erstellen möchten, übergeben Sie 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, es besteht jedoch auch die Möglichkeit, dass jemand einen gültigen Kurzlink errät. Oft ist es kein Problem, wenn jemand das tut, da der Link zu öffentlichen Informationen führt.

Wenn Ihre Kurzlinks jedoch zu nutzerspezifischen Informationen führen, sollten Sie längere Links mit 17-stelligen Suffixen erstellen, damit es sehr unwahrscheinlich ist, dass jemand einen gültigen Dynamic Link erraten kann. Übergeben Sie dazu ShortDynamicLinkType.unguessable an die Methode buildShortLink():

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

Mit der Dynamic Link Builder API können Sie Dynamic 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);

Sie können Parameter für dynamische Links mit den folgenden Methoden festlegen:

DynamicLink-Parameter
setLink Der Link, der in Ihrer App geöffnet wird. Gib eine URL an, die deine App verarbeiten kann, normalerweise den Inhalt oder die Nutzlast der App, die die App-spezifische Logik initiiert (z. B. dem Nutzer einen Gutschein gutschreiben oder einen Begrüßungsbildschirm anzeigen). Dieser Link muss eine korrekt formatierte URL sein, die ordnungsgemäß URL-codiert ist und entweder HTTP oder HTTPS verwendet. Es darf sich nicht um einen anderen Dynamic Link handeln.
setDomainUriPrefix Das URL-Präfix Ihres Dynamic Links, das Sie in der Firebase Console 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. Gib dies an, wenn du etwas anderes tun möchtest, als deine App aus dem Google Play Store zu installieren, wenn die App nicht installiert ist, z. B. die mobile Webversion des Inhalts öffnen oder eine Werbeseite für deine App anzeigen.
setMinimumVersion Der versionCode der ältesten Version Ihrer App, mit der der Link geöffnet werden kann. Wenn die installierte App eine ältere Version ist, wird der Nutzer zum Google Play Store weitergeleitet, um die App zu aktualisieren.
IosParameters
setAppStoreId Die App Store-ID Ihrer App, über die Nutzer zum App Store weitergeleitet werden, wenn die App nicht installiert ist
setFallbackUrl Der Link, der geöffnet werden soll, wenn die App nicht installiert ist. Gib diesen Parameter an, wenn du etwas anderes tun möchtest, als deine App aus dem App Store zu installieren, wenn die App nicht installiert ist, z. B. die mobile Webversion des Inhalts öffnen oder eine Werbeseite für deine App anzeigen.
setCustomScheme Das benutzerdefinierte URL-Schema Ihrer App, falls es nicht mit der Paket-ID Ihrer App übereinstimmt
setIpadFallbackUrl Der Link, der auf iPads geöffnet werden soll, wenn die App nicht installiert ist. Gib hier an, was passieren soll, wenn die App nicht installiert ist, z. B. dass die Webversion des Inhalts geöffnet oder eine Werbeseite für deine App angezeigt werden soll.
setIpadBundleId Die Paket-ID der iOS-App, die auf iPads zum Öffnen des Links verwendet werden soll. Die App muss auf der Übersichtsseite der Firebase Console 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. Ihre App muss dann entscheiden, was damit geschehen soll.
NavigationInfoParameters
setForcedRedirectEnabled Wenn der Wert auf „1“ gesetzt ist, wird die App-Vorschauseite beim Öffnen des dynamischen Links übersprungen und stattdessen zur App oder zum Store weitergeleitet. Über die standardmäßig aktivierte App-Vorschauseite können Nutzer zuverlässiger zum am besten geeigneten Ziel weitergeleitet werden, wenn sie Dynamic Links in Apps öffnen. Wenn Sie jedoch davon ausgehen, dass ein Dynamic Link nur in Apps geöffnet wird, die Dynamic Links ohne diese Seite zuverlässig öffnen können, können Sie sie mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur unter iOS auf das Verhalten des dynamischen 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 werden soll, wenn der dynamische Link in einem Beitrag in sozialen Medien geteilt wird.
setImageUrl Die URL zu einem Bild, das sich auf diesen Link bezieht. 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 Google Play Store weitergegeben und an die Link-Nutzlast angehängt.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect-Analyseparameter. Diese Parameter (`pt`, `at`, `ct`) werden an den App Store übergeben.