使用 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 運算式,會在工作完成時觸發。