使用 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 應用程序com.example.android(在Android 上)和應用程序com.example.ios(在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 表達式。