您可以使用 Firebase Dynamic Links API 建立短片或長片 Dynamic Links。這個 API 會採用多個選用參數結構來建構連結。您也可以從先前產生的長連結建立短連結。Dynamic Links API 會產生類似下列的網址:
https://example.page.link/aSDf
事前準備
如要使用 Firebase Dynamic Links, 請先完成下列步驟:
註冊 Unity 專案並設定使用 Firebase。
如果 Unity 專案已使用 Firebase,則專案已註冊並設定 Firebase。
如果沒有 Unity 專案,可以下載範例應用程式。
將 Firebase Unity SDK (具體來說是
FirebaseDynamicLinks.unitypackage
) 新增至 Unity 專案。
請注意,將 Firebase 新增至 Unity 專案時,您需要在Firebase控制台和開啟的 Unity 專案中執行工作 (例如從控制台下載 Firebase 設定檔,然後移至 Unity 專案)。
設定 Dynamic Links URI 前置字串
在 Firebase 控制台中,開啟 Dynamic Links 專區。
如果尚未接受服務條款,並為 Dynamic Links 設定 URI 前置字元,請在系統提示時完成這些操作。
如果您已有 Dynamic Links URI 前置字串,請記下該字串。以程式輔助方式建立 Dynamic Links 時,您需要提供 Dynamic Links URI 前置字串。
建議:指定可在深層連結和備用連結中使用的網址模式。這樣一來,未經授權的第三方就無法建立 Dynamic Links,從你的網域重新導向至你無法控管的網站。請參閱「允許特定網址模式」。
使用 Firebase 控制台
如要產生單一 Dynamic Link,無論是為了測試,或是讓行銷團隊輕鬆建立連結,以便用於社群媒體貼文等內容,最簡單的方法就是前往 Firebase 控制台,然後按照逐步表單手動建立。
自訂網域
使用自己的網域,而非 goo.gl
或 page.link
子網域,可進一步控管 Dynamic Link 的品牌宣傳。請按照這些操作說明,為專案設定自訂網域。
使用 Firebase Dynamic Links API
從參數建立 long Dynamic Link
如要建立動態連結,請建立 DynamicLinkComponents
物件,設定任何選用成員以進行額外設定,然後存取 LongDynamicLink
屬性來取得連結網址。
以下基本範例會建立指向 https://www.example.com/ 的長動態連結,在 Android 上開啟 com.example.android 應用程式,在 iOS 上開啟 com.example.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
製作 Shorts Dynamic Link
如要建立動態短連結,請將先前產生的長連結傳遞至 Firebase.DynamicLinks.GetShortLinkAsync
,或按照上述方式建構 DynamicLinkComponents
。
GetShortLinkAsync
選擇性地採用額外的 DynamicLinkOptions
設定參數和 PathLength
屬性,方便您控管連結的產生方式。產生短連結時,需要向 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 運算式,在工作完成時觸發。