使用 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

使用參數建立長 Dynamic Link

如要建立動態連結,請建立 DynamicLinkComponents 物件,設定任何選用成員以便進行額外設定,然後存取 LongDynamicLink 屬性以取得連結網址。

以下簡單範例會建立長的動態連結,連結至 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

建立 Shorts Dynamic Link

如要建立 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 運算式,會在工作完成時觸發。