使用 Unity 建立 Dynamic Links

您可以使用 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 前置字串

  1. Firebase 控制台中,開啟 Dynamic Links 專區。

  2. 如果尚未接受服務條款,並為 Dynamic Links 設定 URI 前置字元,請在系統提示時完成這些操作。

    如果您已有 Dynamic Links URI 前置字串,請記下該字串。以程式輔助方式建立 Dynamic Links 時,您需要提供 Dynamic Links URI 前置字串。

  3. 建議:指定可在深層連結和備用連結中使用的網址模式。這樣一來,未經授權的第三方就無法建立 Dynamic Links,從你的網域重新導向至你無法控管的網站。請參閱「允許特定網址模式」。

使用 Firebase 控制台

如要產生單一 Dynamic Link,無論是為了測試,或是讓行銷團隊輕鬆建立連結,以便用於社群媒體貼文等內容,最簡單的方法就是前往 Firebase 控制台,然後按照逐步表單手動建立。

自訂網域

使用自己的網域,而非 goo.glpage.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 運算式,在工作完成時觸發。