您可以使用 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 前缀
在 Firebase 控制台中,打开动态链接部分。
如果您尚未接受服务条款并为您的动态链接设置 URI 前缀,请在出现提示时执行此操作。
如果您已有动态链接 URI 前缀,请记下它。以编程方式创建动态链接时,您需要提供动态链接 URI 前缀。
推荐:指定深层链接和后备链接中允许的 URL 模式。这样做可以防止未经授权的各方创建从您的域重定向到不受您控制的网站的动态链接。请参阅白名单 URL 模式。
使用 Firebase 控制台
如果您想生成单个动态链接,无论是出于测试目的,还是为了让您的营销团队轻松创建可用于社交媒体帖子等内容的链接,最简单的方法是访问Firebase 控制台并创建一个按照分步表格手动操作。
自定义域
通过使用您自己的域而不是goo.gl
或page.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 表达式。