在 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。