Dynamische Links in einer Flutter-App erstellen

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

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 bereits diese Schritte ausgeführt und können diesen Abschnitt überspringen.

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

  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 die Projekteinstellungen Seite der Firebase Console und geben Sie Ihren SHA-1 Signaturschlüssel an. 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 die Erste Schritte Schaltfläche und folgen Sie der Anleitung.

      Notieren Sie sich Ihre Dynamic Links-Domain, falls Sie bereits eine haben. Sie müssen eine Dynamic Links-Domain angeben, wenn Sie Dynamic Links programmatisch erstellen.

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

      Weitere Informationen finden Sie unter Bestimmte URL-Muster zulassen.

Erstellen Sie ein neues DynamicLinkParameters-Objekt und übergeben Sie es an buildLink() oder buildShortLink(), um einen Dynamic Link zu erstellen.

Im folgenden Minimalbeispiel wird ein langer Dynamic 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);

Übergeben Sie das DynamicLinkParameters-Objekt an buildShortLink(), um einen kurzen Dynamic Link zu erstellen. Für die Erstellung des kurzen Links 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 Dynamic Links mit Suffixen generiert, die nur wenige Zeichen lang sind. Dadurch werden Links zwar kompakter, aber es besteht auch die Möglichkeit, dass jemand einen gültigen kurzen Link erraten kann. Oft ist das kein Problem, da der Link zu öffentlichen Informationen führt.

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

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

Mit der Dynamic Link Builder API können Sie Dynamic Links mit allen der unterstützten Parameter erstellen. Siehe die API-Referenz.

Im folgenden Beispiel wird ein Dynamic 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 Dynamic Link-Parameter mit den folgenden Methoden festlegen:

DynamicLink-Parameter
setLink Der Link, der in Ihrer App geöffnet wird. Geben Sie eine URL an, die von Ihrer App verarbeitet werden kann, in der Regel den Inhalt oder die Nutzlast der App, wodurch eine appspezifische Logik ausgelöst wird (z. B. Gutschrift eines Gutscheins oder Anzeige eines Begrüßungsbildschirms). Dieser Link muss eine korrekt formatierte URL sein, ordnungsgemäß URL-codiert sein, entweder HTTP oder HTTPS verwenden und darf kein anderer Dynamic Link sein.
setDomainUriPrefix Ihr Dynamic Link-URL-Präfix, 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. Geben Sie dies an, um etwas anderes zu tun, als die App aus dem Play Store zu installieren, wenn sie nicht installiert ist, z. B. die mobile Webversion des Inhalts zu öffnen oder eine Werbeseite für Ihre App anzuzeigen.
setMinimumVersion Der Versionscode der Mindestversion Ihrer App, mit der der Link geöffnet werden kann. Wenn die installierte App eine ältere Version ist, wird der Nutzer zu dem Play Store weitergeleitet, um die App zu aktualisieren.
IosParameters
setAppStoreId Die App-Store-ID Ihrer App, mit der 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. Geben Sie dies an, um etwas anderes zu tun, als die App aus dem App Store zu installieren, wenn sie 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 es sich von Ihrer Bundle-ID unterscheidet.
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 die 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 verwendet werden soll, um den Link zu öffnen. Die App muss über die Ü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 an Ihre App übergeben, wenn sie geöffnet wird, und Ihre App muss entscheiden, was damit geschehen soll.
NavigationInfoParameters
setForcedRedirectEnabled Wenn dieser Parameter auf „1“ gesetzt ist, wird die App-Vorschauseite übersprungen, wenn der Dynamic Link geöffnet wird, und stattdessen wird zur App oder zum Store weitergeleitet. Die App-Vorschauseite (standardmäßig aktiviert) kann Nutzer zuverlässiger zum am besten geeigneten Ziel weiterleiten, 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 zuverlässig ohne diese Seite öffnen können, können Sie sie mit diesem Parameter deaktivieren. Dieser Parameter wirkt sich nur auf das Verhalten des Dynamic Links unter iOS aus.
SocialMetaTagParameters
setTitle Der Titel, der verwendet werden soll, wenn der Dynamic Link in einem sozialen Beitrag geteilt wird.
setDescription Die Beschreibung, die verwendet werden soll, wenn der Dynamic Link in einem sozialen Beitrag geteilt wird.
setImageUrl 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 der Link-Nutzlast angehängt.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect-Analyseparameter. Diese Parameter (`pt`, `at`, `ct`) werden an den App Store übergeben.