在 Flutter 應用程式中建立 Dynamic Links

您可以使用 Firebase Dynamic Links Builder API 建立短或長的 Dynamic Links。 這個 API 接受長的動態連結,或包含動態連結的物件 參數,並傳回如下範例的網址:

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

您必須先將 Firebase SDK。如果您的應用程式已設為接收 Dynamic Links 可以略過這部分

  1. 安裝並初始化 Flutter 專用的 Firebase SDK (如有) 。

  2. 在 Flutter 專案的根目錄中執行下列指令 指令安裝 Dynamic Links 外掛程式:

    flutter pub add firebase_dynamic_links
    
  3. 如果您要建構 Android 應用程式,請開啟專案設定 並確認您已指定 SHA-1 架構中的 SHA-1 簽署金鑰。如果您使用應用程式連結,請一併指定 SHA-256 金鑰。

  4. 在 Firebase 控制台中,開啟「Dynamic Links」(動態連結)。 專區。

    1. 如果您尚未為動態連結設定網域,請按一下 按鈕並按照提示操作。

      如果您已經有 Dynamic Links 網域,請加以記下。您需要執行的操作 會在您透過程式建立 Dynamic Links 時提供 Dynamic Links 網域。

    2. 推薦人選:來自「更多」(⋮) 選單指定網址 深層連結和備用連結中允許的模式。獲得解答後 可防止未經授權的對象建立會重新導向的動態連結 改成由您控制的網站

      請參閱允許特定網址模式

如要建立動態連結,請建立新的 DynamicLinkParameters 物件並傳送至 buildLink()buildShortLink()

以下範例最簡單的範例會建立長的動態連結, 在 Android 裝置上透過 com.example.app.android 開啟的https://www.example.com/ 以及 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,
);

您可以使用 Dynamic Link Builder API,透過下列任一方式建立 Dynamic Links 支援的參數。請參閱 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);

您可以使用下列方法設定動態連結參數:

DynamicLink 參數
setLink 應用程式會開啟的連結。指定應用程式可處理的網址。 通常是應用程式的內容或酬載,用於啟動特定應用程式的 邏輯 (例如運用優待券或顯示 歡迎畫面)。這個連結必須是格式正確的網址 網址編碼、使用 HTTP 或 HTTPS,且不能使用其他動態 連結。
setDomainUriPrefix 動態連結網址前置字串,可在 Firebase 控制台中找到。A 罩杯 Dynamic Link 網域範例如下:
https://example.com/link
https://example.page.link
Android 參數
setFallbackUrl 未安裝應用程式時開啟的連結。指定這項操作 並非從 Play 商店安裝應用程式 裝置未安裝,例如開啟行動版網站內容。 顯示應用程式的宣傳頁面。
setMinimumVersion 可開啟 連結。如果安裝的應用程式是較舊的版本,系統會將使用者導向 從 Play 商店升級應用程式
iOS 參數
setAppStore ID 應用程式的 App Store ID,會在 應用程式未安裝
setFallbackUrl 未安裝應用程式時開啟的連結。指定這項操作 除了從 App Store 安裝應用程式外 裝置未安裝,例如開啟行動版網站內容。 顯示應用程式的宣傳頁面。
setCustomScheme 應用程式的自訂網址通訊協定 (如果定義並非 應用程式的軟體包 ID
setIpadFallbackUrl 未安裝應用程式時,在 iPad 上開啟的連結。將這項參數指定為 並非透過應用程式商店安裝應用程式 應用程式並未安裝,例如開啟網頁內容。 顯示應用程式的宣傳頁面。
setIpadBundleId 要在 iPad 上開啟連結的 iOS 應用程式軟體包 ID。應用程式 必須在 GCP 的「總覽」頁面中,連結至您的專案 Firebase 控制台。
setMinimumVersion 可開啟 連結。這個標記會在應用程式開啟後傳送到您的應用程式 必須決定該如何處理
NavigationInfo 參數
setForcedRedirectEnabled 如果設為「1」,則當動態連結為 並重新導向至應用程式或商店應用程式預覽頁面 (預設為啟用) 就能更穩定地將使用者傳送至 在應用程式中開啟 Dynamic Links 時適用的目的地;不過 您預期動態連結只會在可開啟的應用程式中開啟 即使沒有這個頁面,Dynamic Links 也能透過這個程序停用 參數。這個參數會影響動態連結的行為 目前只支援 iOS 裝置
SocialMetaTagParameters
設定標題 在社群媒體貼文中分享 Dynamic Link 時使用的標題。
setDescription 在社群媒體貼文中分享 Dynamic Link 時使用的說明。
setImageUrl 這個連結相關圖片的網址。圖片不得小於 需大於 300 x 200 像素,且小於 300 KB。
GoogleAnalytics 參數
setSource
setMedium
setCampaign
setTerm
setContent
Google Play 數據分析參數。這些參數 (`utm_source`、`utm_medium`、 `utm_campaign`、`utm_term`、`utm_content`) 會傳遞至 Play 商店,也會附加至連結酬載。
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes 連結數據分析參數。這些參數 (`pt` `at`、`ct`) 會傳遞到 App Store。