您可以使用 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 上打開您的 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
創建一個簡短的動態鏈接
要創建短動態鏈接,請將之前生成的長鏈接傳遞給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 表達式。