在 Flutter 應用程式中建立動態鏈接

您可以使用 Firebase 動態鏈接生成器 API 創建短動態鏈接或長動態鏈接。此 API 接受長動態鏈接或包含動態鏈接參數的對象,並返回如下示例所示的 URL:

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

您必須先包含 Firebase SDK,然後才能在 Android 應用中創建動態鏈接。如果您的應用程序設置為接收動態鏈接,則您已經完成了這些步驟,並且可以跳過此部分。

  1. 如果您尚未安裝並初始化適用於 Flutter 的 Firebase SDK,請執行此操作。

  2. 從 Flutter 項目的根目錄中,運行以下命令來安裝 Dynamic Links 插件:

    flutter pub add firebase_dynamic_links
    
  3. 如果您正在構建 Android 應用,請打開 Firebase 控制台的項目設置頁面,並確保您已指定 SHA-1 簽名密鑰。如果您使用應用程序鏈接,還請指定您的 SHA-256 密鑰。

  4. 在 Firebase 控制台中,打開動態鏈接部分。

    1. 如果您尚未為動態鏈接設置域,請單擊“開始”按鈕並按照提示操作。

      如果您已有動態鏈接域,請記下它。以編程方式創建動態鏈接時,您需要提供動態鏈接域。

    2. 推薦:從“更多”(⋮) 菜單中,指定深層鏈接和後備鏈接中允許的 URL 模式。通過這樣做,您可以防止未經授權的各方創建從您的域重定向到您無法控制的網站的動態鏈接。

      請參閱允許特定 URL 模式

要創建動態鏈接,請創建一個新的DynamicLinkParameters對象並將其傳遞給buildLink()buildShortLink()

以下最小示例創建一個指向https://www.example.com/長動態鏈接,在 Android 上使用com.example.app.android打開,在 iOS 上使用應用com.example.app.ios打開:

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

要創建短動態鏈接,請將DynamicLinkParameters對像傳遞給buildShortLink() 。構建短鏈接需要網絡調用。例如:

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

默認情況下,生成的短動態鏈接的後綴只有幾個字符長。雖然這使得鏈接更加緊湊,但它也帶來了有人猜測有效短鏈接的可能性。通常,如果有人這樣做並沒有什麼壞處,因為該鏈接會指向公共信息。

但是,如果您的短鏈接指向特定於用戶的信息,則您應該創建帶有 17 個字符後綴的較長鏈接,這樣別人就不太可能猜出有效的動態鏈接。為此,請將ShortDynamicLinkType.unguessable傳遞給buildShortLink()方法:

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

您可以使用動態鏈接生成器 API 通過任何支持的參數創建動態鏈接。請參閱API 參考

以下示例創建具有多個常用參數集的動態鏈接:

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

您可以通過以下方法設置動態鏈接參數:

動態鏈接參數
設置鏈接您的應用程序將打開的鏈接。指定您的應用程序可以處理的 URL,通常是應用程序的內容或負載,用於啟動特定於應用程序的邏輯(例如向用戶提供優惠券或顯示歡迎屏幕)。此鏈接必須是格式良好的 URL、正確的 URL 編碼、使用 HTTP 或 HTTPS,並且不能是另一個動態鏈接。
設置DomainUriPrefix您的動態鏈接 URL 前綴,您可以在 Firebase 控制台中找到。動態鏈接域類似於以下示例:
https://example.com/link
https://example.page.link
Android參數
設置後備網址未安裝應用程序時打開的鏈接。指定此選項可以在未安裝應用程序時執行除從 Play 商店安裝應用程序之外的其他操作,例如打開內容的移動網絡版本,或顯示應用程序的促銷頁面。
設置最低版本可以打開鏈接的應用程序的最低版本的versionCode。如果安裝的應用程序是舊版本,用戶將被帶到 Play 商店升級應用程序。
Ios參數
設置應用商店Id您的應用程序的 App Store ID,用於在未安裝應用程序時將用戶引導至 App Store
設置後備網址未安裝應用程序時打開的鏈接。指定此選項可以在未安裝應用程序時執行除從 App Store 安裝應用程序之外的其他操作,例如打開內容的移動網絡版本,或顯示應用程序的促銷頁面。
設置自定義方案您的應用程序的自定義 URL 方案(如果定義為應用程序的捆綁包 ID 以外的其他內容)
setIpadFallbackUrl未安裝應用程序時在 iPad 上打開的鏈接。指定此選項可以在未安裝應用程序時執行除從 App Store 安裝應用程序之外的其他操作,例如打開內容的 Web 版本,或顯示應用程序的促銷頁面。
設置IpadBundleId用於在 iPad 上打開鏈接的 iOS 應用程序的捆綁包 ID。該應用必須從 Firebase 控制台的“概述”頁面連接到您的項目。
設置最低版本可以打開鏈接的應用程序的最低版本號。當您的應用程序打開時,此標誌會傳遞給您的應用程序,您的應用程序必須決定如何處理它。
導航信息參數
設置強制重定向啟用如果設置為“1”,則在打開動態鏈接時跳過應用程序預覽頁面,而是重定向到應用程序或商店。當用戶在應用程序中打開動態鏈接時,應用程序預覽頁面(默認啟用)可以更可靠地將用戶發送到最合適的目的地;但是,如果您希望僅在無需此頁面即可可靠打開動態鏈接的應用程序中打開動態鏈接,則可以使用此參數禁用它。此參數僅影響 iOS 上動態鏈接的行為。
社交元標籤參數
設置標題在社交帖子中共享動態鏈接時使用的標題。
設置描述在社交帖子中共享動態鏈接時使用的描述。
設置圖片地址與此鏈接相關的圖像的 URL。圖像應至少為 300x200 像素,且小於 300 KB。
GoogleAnalytics參數
設置源
設置中
設置活動
設置期限
設置內容
Google Play 分析參數。這些參數(`utm_source`、`utm_medium`、`utm_campaign`、`utm_term`、`utm_content`)會傳遞到 Play 商店並附加到鏈接負載中。
ItunesConnectAnalytics參數
設置提供商令牌
設置附屬令牌
設置活動令牌
iTunes Connect 分析參數。這些參數(`pt`、`at`、`ct`)被傳遞到 App Store。