Firebase 将于 5 月 10 日重返 Google I/O 大会!立即报名

Erstellen Sie dynamische Links in einer Flutter-App

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

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. 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-Plugin zu installieren:

    flutter pub add firebase_dynamic_links
    
  3. Wenn Sie eine Android-App erstellen, öffnen Sie die Seite Projekteinstellungen der Firebase-Konsole und vergewissern Sie sich, dass 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-Konsole den Abschnitt Dynamische Links .

    1. Wenn Sie noch keine Domain für Ihre dynamischen Links eingerichtet haben, klicken Sie auf die Schaltfläche Erste Schritte und folgen Sie den Anweisungen.

      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.

    2. Empfohlen : Geben Sie im Menü "Mehr" (⋮) die URL-Muster an, die in Ihren Deep-Links und Fallback-Links zulässig sind. 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 .

Erstellen Sie zum Erstellen eines dynamischen Links ein neues DynamicLinkParameters Objekt und übergeben Sie es an buildLink() oder buildShortLink() .

Das folgende Minimalbeispiel erstellt einen langen dynamischen Link zu https://www.example.com/ , der mit com.example.app.android auf Android und der App com.example.app.ios auf 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);

Um einen kurzen dynamischen Link zu erstellen, übergeben Sie das DynamicLinkParameters Objekt an buildShortLink() . Der Aufbau der Kurzverbindung erfordert einen Netzwerkaufruf. Zum 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. Obwohl dies Links kompakter macht, führt es auch die Möglichkeit ein, dass jemand einen gültigen Kurzlink erraten könnte. Oft schadet es niemandem, weil der Link zu öffentlichen Informationen führt.

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

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

Sie können die Dynamic Link Builder API verwenden, um dynamische Links mit jedem der unterstützten Parameter zu erstellen. Siehe die API-Referenz .

Das folgende Beispiel erstellt einen dynamischen Link mit mehreren allgemeinen Parametersätzen:

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 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
setContent
Analyseparameter von Google Play. Diese Parameter (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) werden an den Play Store weitergegeben sowie an die Link-Payload angehängt.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect-Analyseparameter. Diese Parameter (`pt`, `at`, `ct`) werden an den App Store übergeben.
,

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

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. 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-Plugin zu installieren:

    flutter pub add firebase_dynamic_links
    
  3. Wenn Sie eine Android-App erstellen, öffnen Sie die Seite Projekteinstellungen der Firebase-Konsole und vergewissern Sie sich, dass 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-Konsole den Abschnitt Dynamische Links .

    1. Wenn Sie noch keine Domain für Ihre dynamischen Links eingerichtet haben, klicken Sie auf die Schaltfläche Erste Schritte und folgen Sie den Anweisungen.

      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.

    2. Empfohlen : Geben Sie im Menü "Mehr" (⋮) die URL-Muster an, die in Ihren Deep-Links und Fallback-Links zulässig sind. 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 .

Erstellen Sie zum Erstellen eines dynamischen Links ein neues DynamicLinkParameters Objekt und übergeben Sie es an buildLink() oder buildShortLink() .

Das folgende Minimalbeispiel erstellt einen langen dynamischen Link zu https://www.example.com/ , der mit com.example.app.android auf Android und der App com.example.app.ios auf 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);

Um einen kurzen dynamischen Link zu erstellen, übergeben Sie das DynamicLinkParameters Objekt an buildShortLink() . Der Aufbau der Kurzverbindung erfordert einen Netzwerkaufruf. Zum 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. Obwohl dies Links kompakter macht, führt es auch die Möglichkeit ein, dass jemand einen gültigen Kurzlink erraten könnte. Oft schadet es niemandem, weil der Link zu öffentlichen Informationen führt.

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

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

Sie können die Dynamic Link Builder API verwenden, um dynamische Links mit jedem der unterstützten Parameter zu erstellen. Siehe die API-Referenz .

Das folgende Beispiel erstellt einen dynamischen Link mit mehreren allgemeinen Parametersätzen:

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 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
setContent
Analyseparameter von Google Play. Diese Parameter (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) werden an den Play Store weitergegeben sowie an die Link-Payload angehängt.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect-Analyseparameter. Diese Parameter (`pt`, `at`, `ct`) werden an den App Store übergeben.