Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

使用 Unity 創建動態鏈接

您可以使用 Firebase Dynamic Links API 創建短動態鏈接或長動態鏈接。 API 採用幾個可選的參數結構來構建鏈接。也可以從先前生成的長鏈接創建短鏈接。動態鏈接 API 將生成如下所示的 URL:

https://example.page.link/aSDf

在你開始之前

之前,你可以使用火力地堡的動態鏈接,您需要:

  • 註冊您的 Unity 項目並將其配置為使用 Firebase。

    • 如果您的 Unity 項目已經使用 Firebase,那麼它已經為 Firebase 註冊和配置。

    • 如果你沒有一個統一的項目,你可以下載一個示例應用程序

  • 添加火力地堡統一SDK (具體FirebaseDynamicLinks.unitypackage )到您的統一項目。

注意添加火力地堡到您的統一項目涉及雙方的任務火力地堡控制台並在打開的統一的項目(例如,您從控制台下載火力地堡的配置文件,然後將其移動到您的統一項目)。

設置動態鏈接 URI 前綴

  1. 在火力地堡控制台,打開動態鏈接部分。

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

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

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

使用 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可選需要一個額外的DynamicLinkOptions配置參數與PathLength屬性,讓您控制鏈路應該如何生成的。短鏈接生成需要的網絡請求到火力地堡後端,所以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 表達式。