创建动态链接 (Unity)

您可以使用 Firebase Dynamic Links API 创建短动态链接或长动态链接。该 API 会使用几种可选的参数结构来构建链接。您也可以根据以前生成的长链接来创建短链接。Dynamic Links API 将生成一个如下所示的网址:

https://abc123.app.goo.gl/WXYZ

开始之前

您必须先创建一个 Firebase 项目,并将 Firebase Unity SDK 包添加到您的 Unity 项目中,然后才能使用 Firebase 动态链接。

设置:

前提条件

Android

  • Unity 5.0 或更高版本
  • Android NDK 版本 10d 或更高版本

iOS

  • Unity 5.0 或更高版本
  • Xcode 8.0 或更高版本

如果您还没有 Unity 项目,可以下载一个快速入门示例,试用一下特定的 Firebase 功能。如果使用快速入门示例,请不要忘记从项目设置中获取软件包标识符,下一步中会用到该标识符。

在 Firebase 控制台中设置您的应用

要将 Firebase 添加到您的应用,您需要有一个 Firebase 项目以及适用于您的应用的 Firebase 配置文件。

如果您还没有 Firebase 项目,请在 Firebase 控制台中创建一个。如果您已经有与自己的移动应用相关联的现有 Google 项目,请点击导入 Google 项目。如果没有,请点击添加项目

Android

  1. 点击将 Firebase 添加到您的 Android 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 出现提示时,输入应用的软件包名称。请务必输入应用在使用的软件包名称;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 按照说明下载 google-services.json 文件。您随时可以再重新下载此文件
  4. 将此文件复制到项目的资源文件夹内的任意位置。

iOS

  1. 点击将 Firebase 添加到您的 iOS 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 出现提示时,输入应用的软件包 ID。请务必输入应用在使用的软件包 ID;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 按照说明下载 GoogleService-Info.plist 文件。您随时可以再重新下载此文件
  4. GoogleService-Info.plist 文件添加到项目中。

    • 将从 Firebase 控制台下载的 GoogleService-Info.plist 拖动到 Unity 项目中的任意文件夹内。

将 Firebase Unity SDK 添加到您的应用

  1. 下载 Firebase Unity SDK
  2. 依次选择 Assets > Import Package > Custom Package 菜单项。
  3. 从之前下载的 Firebase Unity SDK 导入 FirebaseDynamicLinks.unitypackage 软件包。
  4. 当出现 Import Unity Package 窗口时,点击 Import 按钮。

初始化 SDK

Firebase Unity SDK (Android) 需要使用 Google Play 服务。您必须先将 Google Play 服务更新为最新版本,然后才能使用该 SDK。您的应用开头处应添加以下代码,以便检查是否有 Google Play 服务更新,并视情况将这些服务更新为 Firebase Unity SDK 要求的版本,然后再调用 SDK 中的任何其他方法。

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Set a flag here indiciating that Firebase is ready to use by your
    // application.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

编译您的应用

Android

  1. 依次选择 File > Build Settings 菜单选项。
  2. 选择 Platform 列表中的 Android
  3. 点击 Switch Platform,选择 Android 作为目标平台。
  4. 等待 Unity 状态栏右下角的旋转进度条(正在编译)图标停止旋转。
  5. 点击 Build and Run

iOS

  1. 依次选择 File > Build Settings 菜单选项。
  2. 选择 Platform 列表中的 iOS
  3. 点击 Switch Platform,选择 iOS 作为目标平台。
  4. 等待 Unity 状态栏右下角的旋转进度条(正在编译)图标停止旋转。
  5. 点击 Build and Run

使用 Firebase 控制台

如果您想生成一个动态链接(无论是出于测试目的,还是为了让您的营销团队轻松创建可以在社交媒体帖子等地方使用的链接),最简单的方法就是访问 Firebase 控制台并按照分步说明手动创建一个。

使用 Firebase Dynamic Links API

利用参数创建长动态链接

要创建动态链接,请创建一个 DynamicLinkComponents 对象,并设置所有用于额外配置的可选成员,然后访问 LongDynamicLink 属性以获取链接网址。

下面这个极为简单的示例创建了一个指向 https://example.com/ 的长动态链接,此链接会在您的 Android 应用 com.example.android.package_name(在 Android 上)和 iOS 应用 com.example.ios(在 iOS 上)中打开:

var components = new Firebase.DynamicLinks.DynamicLinkComponents(
        // The base Link.
        new System.Uri("https://example.com/"),
        // The dynamic link domain.
        "abc123.app.goo.gl") {
  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.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.ShortLink 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 表达式,该表达式在任务完成时触发。

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面