Check out what’s new from Firebase at Google I/O 2022. Learn more

使用 Unity 創建動態鏈接

您可以使用 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 前綴

  1. 在 Firebase 控制台中,打開動態鏈接部分。

  2. 如果您尚未接受服務條款並為您的動態鏈接設置 URI 前綴,請在出現提示時執行此操作。

    如果您已有動態鏈接 URI 前綴,請記下它。以編程方式創建動態鏈接時,您需要提供動態鏈接 URI 前綴。

  3. 推薦:指定深層鏈接和後備鏈接中允許的 URL 模式。通過這樣做,您可以防止未經授權的各方創建從您的域重定向到您無法控制的網站的動態鏈接。請參閱白名單 URL 模式

使用 Firebase 控制台

如果您想生成單個動態鏈接,無論是出於測試目的,還是讓您的營銷團隊輕鬆創建可用於社交媒體帖子等內容的鏈接,最簡單的方法是訪問Firebase 控制台並創建一個手動按照分步表格進行操作。

自定義域

通過使用您自己的域而不是goo.glpage.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 表達式。