使用 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.gl 或 page.link 子網域,進一步控管 Dynamic Link 的品牌宣傳。請按照這些操作說明,為專案設定自訂網域。

使用 Firebase Dynamic Links API

從參數建立長 Dynamic Link

如要建立 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

建立短連結 Dynamic Link

如要建立短 Dynamic Link,請將先前產生的長連結傳遞至 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 運算式,會在工作完成時觸發。