您可以使用 Firebase Dynamic Links Builder API 建立短或長的動態連結。這個 API 會接受長型動態連結或包含動態連結參數的物件,並傳回以下範例中的網址:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
設定 Firebase 和 Dynamic Links SDK
您必須先加入 Firebase SDK,才能在 Android 應用程式中建立動態連結。如果應用程式已設定為接收動態連結,表示您已完成這些步驟,可以略過本節。
如果您尚未安裝並初始化 Flutter 專用的 Firebase SDK,請先完成這項操作。
在 Flutter 專案的根目錄中執行下列指令,安裝 Dynamic Links 外掛程式:
flutter pub add firebase_dynamic_links
如果您要建構 Android 應用程式,請開啟 Firebase 控制台的「Project settings」頁面,並確認您已指定 SHA-1 簽署金鑰。如果您使用應用程式連結,請一併指定 SHA-256 金鑰。
-
如果您尚未為動態連結設定網域,請按一下「開始使用」按鈕,然後按照提示操作。
如果您已擁有動態連結網域,請記下網域名稱。透過程式碼建立動態連結時,您必須提供動態連結網域。
建議:在「更多」(⋮) 選單中,指定深層連結和備用連結中允許的網址模式。這樣一來,您就能防止未經授權的對象建立動態連結,從您的網域重新導向至您無法控管的網站。
請參閱「允許特定網址模式」。
使用參數建立動態連結
如要建立 Dynamic Link,請建立新的 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);
如要建立 Dynamic Link 短網址,請將 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);
根據預設,系統會產生簡短的 Dynamic Links,其中的後置字串長度只有幾個字元。雖然這麼做可讓連結更精簡,但也可能讓使用者猜到有效的短連結。通常來說,如果有人這樣做,並不會造成任何傷害,因為連結會導向公開資訊。
不過,如果短連結會導向使用者專屬資訊,您應建立較長的連結,並加上 17 個字元的後置字串,這樣使用者就很難猜出有效的動態連結。如要這麼做,請將 ShortDynamicLinkType.unguessable
傳遞至 buildShortLink()
方法:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
動態連結參數
您可以使用 Dynamic Link Builder API,搭配任何支援的參數建立 Dynamic Links。請參閱 API 參考資料。
以下範例會建立 Dynamic Link,並設定幾個常見的參數:
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 控制台中找到。動態連結網域的格式如下:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | 未安裝應用程式時要開啟的連結。指定這個值,即可在未安裝應用程式時執行其他操作,例如開啟內容的行動版網頁版本,或顯示應用程式的宣傳頁面。 |
setMinimumVersion | 可開啟連結的應用程式最低版本的 versionCode。如果安裝的應用程式為舊版,使用者會被帶往 Play 商店升級應用程式。 |
IosParameters | |
---|---|
setAppStoreId | 應用程式的 App Store ID,用於將未安裝應用程式的使用者導向 App Store |
setFallbackUrl | 未安裝應用程式時要開啟的連結。指定這個值,即可在未安裝應用程式時執行其他操作,例如開啟內容的行動網頁版,或顯示應用程式的宣傳頁面。 |
setCustomScheme | 應用程式的自訂網址通訊協定 (如果已定義為應用程式的軟體包 ID 以外的值) |
setIpadFallbackUrl | 在未安裝應用程式的 iPad 上開啟的連結。指定這個值,即可在未安裝應用程式時執行其他操作,例如開啟內容的網頁版,或顯示應用程式的宣傳頁面。 |
setIpadBundleId | 在 iPad 上用來開啟連結的 iOS 應用程式軟體包 ID。應用程式必須透過 Firebase 主控台的總覽頁面連結至專案。 |
setMinimumVersion | 可開啟連結的應用程式最低版本號碼。這個標記會在應用程式開啟時傳遞給應用程式,而應用程式必須決定如何處理這個標記。 |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | 如果設為「1」,開啟動態連結時會略過應用程式預覽頁面,改為重新導向至應用程式或商店。應用程式預覽頁面 (預設為啟用) 可在使用者在應用程式中開啟動態連結時,將使用者帶往最適當的目的地。不過,如果您希望只在應用程式中開啟動態連結 (無需使用這個頁面),可以透過這個參數停用該頁面。這個參數只會影響 iOS 版動態連結的行為。 |
SocialMetaTagParameters | |
---|---|
setTitle | 在社群媒體貼文中分享動態連結時使用的標題。 |
setDescription | 在社群媒體貼文中分享動態連結時使用的說明。 |
setImageUrl | 與此連結相關的圖片網址。圖片尺寸不得小於 300 x 200 像素,且大小不得超過 300 KB。 |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Google Play 分析參數。這些參數 (`utm_source`、`utm_medium`、`utm_campaign`、`utm_term`、`utm_content`) 會傳遞至 Play 商店,並附加至連結酬載。 |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect 數據分析參數。這些參數 (``pt``、``at``、``ct``) 會傳送至 App Store。 |