您可以使用 Firebase 動態連結 API 建立短動態連結或長動態連結。此 API 採用多個可選參數結構來建立連結。也可以從先前產生的長連結建立短連結。動態連結 API 將產生以下 URL:
https://example.page.link/aSDf
在你開始之前
在使用Firebase 動態連結之前,您需要:
註冊您的 Unity 專案並將其配置為使用 Firebase。
如果您的 Unity 專案已使用 Firebase,則它已針對 Firebase 進行註冊和設定。
如果您沒有 Unity 項目,可以下載範例應用程式。
將Firebase Unity SDK (具體來說,
FirebaseDynamicLinks.unitypackage
)加入您的 Unity 專案。
請注意,將 Firebase 新增至 Unity 專案涉及Firebase 控制台和開啟的 Unity 專案中的任務(例如,從控制台下載 Firebase 設定文件,然後將它們移至 Unity 專案中)。
設定動態連結 URI 前綴
在 Firebase 控制台中,開啟動態連結部分。
如果您尚未接受服務條款並為動態連結設定 URI 前綴,請在出現提示時執行此操作。
如果您已有動態連結 URI 前綴,請記下它。以程式設計方式建立動態連結時,您需要提供動態連結 URI 前綴。
推薦:指定深層連結和後備連結中允許的 URL 模式。透過這樣做,您可以防止未經授權的各方建立從您的網域重定向到您無法控制的網站的動態連結。請參閱白名單 URL 模式。
使用 Firebase 控制台
如果您想生成單個動態鏈接,無論是出於測試目的,還是讓您的營銷團隊輕鬆創建可在社交媒體帖子等內容中使用的鏈接,最簡單的方法是訪問Firebase 控制台並創建一個手動按照分步表格操作。
自訂域
透過使用您自己的網域而不是goo.gl
或page.link
子網域,您可以更好地控制動態連結的品牌。請按照以下說明為您的專案設定自訂網域。
使用 Firebase 動態連結 API
從參數建立長動態鏈接
若要建立動態鏈接,請建立DynamicLinkComponents
對象,設定任何選用會員以進行其他配置,然後造訪LongDynamicLink
屬性以取得連結 URL。
以下最小範例建立一個指向https://www.example.com/ 的長動態鏈接,該連結將透過Android 應用程式com.example.android(在Android 上)和應用程式com.example.ios(在iOS 上)打開:
var components = new Firebase.DynamicLinks.DynamicLinkComponents( // The base Link. new System.Uri("https://www.example.com/"), // The dynamic link URI prefix. "https://example.page.link") { IOSParameters = new Firebase.DynamicLinks.IOSParameters("com.example.ios"), AndroidParameters = new Firebase.DynamicLinks.AndroidParameters( "com.example.android.package_name"), }; // do something with: components.LongDynamicLink
建立短動態鏈接
要建立短動態鏈接,請將先前產生的長鏈接傳遞給Firebase.DynamicLinks.GetShortLinkAsync
或以與上述相同的方式建立DynamicLinkComponents
。
GetShortLinkAsync
可以選擇使用帶有PathLength
屬性的額外DynamicLinkOptions
配置參數,讓您控制應如何產生連結。短連結產生需要向 Firebase 後端發出網路請求,因此GetShortLinkAsync
方法是非同步執行的。 GetShortLinkAsync
回傳Task<Firebase.DynamicLinks.ShortDynamicLink>
。
例如:
var options = new Firebase.DynamicLinks.DynamicLinkOptions { PathLength = DynamicLinkPathLength.Unguessable }; Firebase.DynamicLinks.DynamicLinks.GetShortLinkAsync(components, options).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("GetShortLinkAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("GetShortLinkAsync encountered an error: " + task.Exception); return; } // Short Link has been created. Firebase.DynamicLinks.ShortDynamicLink link = task.Result; Debug.LogFormat("Generated short link {0}", link.Url); var warnings = new System.Collections.Generic.List<string>(link.Warnings); if (warnings.Count > 0) { // Debug logging for warnings generating the short link. } });
上面的範例使用任務完成時觸發的 lambda 表達式。