Firebase动态链接
首先,我们将简要讨论深度链接概念。 深度链接的概念是从另一个应用程序打开移动应用程序的特定内容,或者单击Web链接打开移动应用程序。 让我们举个例子。 首先将您的Instagram帖子分享到Twitter。 现在转到Twitter应用程序或在移动浏览器中打开twitter.com。 现在在推文中查看您的Instagram帖子。 现在单击该帖子,这会将您重定向到自己在Instagram应用上的帖子(如果已安装),否则它将在浏览器中打开该帖子。
因此,使用深层链接可以将用户重定向到您的应用程序,而不是在网络上显示内容,这更加用户友好和方便。 消息传递到其他应用程序也是可能的。 这可以使用自定义网址架构来实现。
现在您想到了,如果我们可以通过深层链接实现Firebase动态链接,那么为什么需要Firebase动态链接。
但是深度链接的局限性在于,这对于尚未安装应用程序的用户将不起作用。 例如,您想向应用程序用户显示个性化的欢迎消息,或者想显示促销优惠,或者想通过单击深层链接将其重定向到应用程序中的特定屏幕。 现在,如果用户尚未安装您的应用程序该怎么办?
在这种情况下,Firebase动态链接可以为您提供正确的解决方案。 这些深层链接可以满足您的所有需求。 通过创建一个动态链接,您可以将用户重定向到适当的平台。 单击此链接,移动应用程序用户将被重定向到其本机应用程序,而网络用户将被重定向到您的网站以获取特定内容。
您还可以自定义此行为。 如果用户尚未安装您的应用程序,则可以将其带到应用程序商店/游戏商店以下载应用程序,或带他在移动浏览器上显示内容。 当用户单击动态链接并安装应用程序时,信息在用户第一次打开应用程序时仍然可用。
Firebase动态链接需要iOS 8或更高版本。
如何创建Firebase动态链接?
您可以通过三种方式创建Firebase动态链接。
- 使用Firebase控制台
- 使用REST API
- 通过将动态链接参数添加到特定于您的应用程序的域来形成URL。
使用Firebase控制台创建动态链接
这对于在社交媒体上创建一个链接共享很有用。
- 单击Firebase控制台项目中的“动态链接”部分。
- 记下您的Firebase动态链接域,然后单击“新建动态链接”。
3)填写所需的信息,最后单击“创建动态链接”。
在iOS上接收动态链接
要接收您之前创建的Firebase动态链接,您必须在应用程序中包含Dynamic Links SDK,并在应用程序加载时调用handleUniversalLink:和dynamicLinkFromCustomSchemeURL:方法以获取在动态链接中传递的数据。
设置Firebase动态链接SDK
- 首先,将Firebase设置为您的iOS项目。 如果您不熟悉Firebase,可以在此处检查设置Firebase。
- 在pod文件中添加pod’Firebase / DynamicLinks’ 。
- 运行pod install并打开工作区文件。
- 检查是否在应用程序设置中指定了应用程序的App Store ID和Apple Developer Team ID。 要查看和编辑应用程序的设置,请转到Firebase项目的“设置”页面,然后选择您的iOS应用程序。
- 您可以通过打开以下URL来确认Firebase项目已正确配置为使用iOS应用程序中的动态链接:https://app_code.app.goo.gl/apple-app-site-association
https://app_code.app.goo.gl是您之前记下的Firebase动态链接域。
如果所有设置均正确,您将获得如下响应:
{“ applinks”:{“ apps”:[],“ details”:[{“ appID”:“ 1234567890.com.example.ios”,“ paths”:[“ / *”]}}}}}
现在打开您的Xcode项目并转到Build Settings Info选项卡。在URL Types中添加新的URL类型以用于动态链接。 将“ 标识符”字段设置为唯一值,并将“ URL方案”设置为应用程序的捆绑包标识符或其他唯一值。
最佳做法是将 URL方案 设置 为您的应用程序捆绑包标识符,否则在创建动态链接时必须指定捆绑包标识符。
接下来,在“ 功能”选项卡下启用“关联的域”。 将以下值添加到“ 关联的域”列表中:
Applinks:app_code.app.goo.gl
在AppDelegate类中导入Firebase。
在didFinishLaunchingWithOptions:方法中,配置FIRApp并将deepLinkURLScheme设置为您在URL类型中设置的URL方案。
func application(_ application:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey:Any]?)->布尔{
//应用程序启动后进行自定义的替代点。
//使用Firebase库配置API
FIROptions.default()。deepLinkURLScheme =“ Your_App_URL_Scheme”
FIRApp.configure()
返回真
}
用户在安装后首次打开您的应用程序时,将调用application:openURL:sourceApplication:annotation:方法。 因此,您可以使用此方法编写代码以显示欢迎消息或显示促销优惠。
func application(_ app:UIApplication,打开url:URL,选项:[UIApplicationOpenURLOptionsKey:Any] = [:])-> Bool {
返回应用程序(应用程序,打开:URL,源应用程序:无,注释:[:])
}
func application(_ application:UIApplication,open url:URL,sourceApplication:String ?,注解:Any)-> Bool {
让dynamicLink = FIRDynamicLinks.dynamicLinks()?. dynamicLink(fromCustomSchemeURL:url)
如果让dynamicLink = dynamicLink {
//在此处处理深层链接。
//显示促销优惠。
打印(“动态链接:\(dynamicLink.url)”)
返回真
}
返回假
}
当您的应用程序收到动态链接时,将调用application:continueUserActivity:restorationHandler:方法。 在iOS 9和更高版本上,深层链接被视为通用链接。 您可以通过回调中的dynamiclink.url属性获取动态链接网址。 根据URL路径,您可以使用此方法编写重定向代码。
@available(iOS 8.0,*)
func application(_ application:UIApplication,continue userActivity:NSUserActivity,restoreHandler:@escaping([Any]?)-> Void)-> Bool {
警惕让dynamicLinks = FIRDynamicLinks.dynamicLinks()else {
返回假
}
让处理= dynamicLinks.handleUniversalLink(userActivity.webpageURL!){(动态链接,错误)在
//在此处处理深层链接。
//根据需要将用户重定向到特定屏幕。
打印(“动态链接:\(dynamiclink?.url)”)
让路径= dynamiclink?.url?.path
如果path ==“ / home” {
打印(“重定向到主屏幕”)
}
其他
{
打印(“重定向到另一个屏幕”)
}
}
退货处理
}
希望本文能为您提供使用Firebase控制台创建Firebase Dynamic Link以及在iOS上设置Firebase Dynamic Links SDK的基本思路。 对于其他两个选项,您可以在此处查看Firebase文档。
快乐编码!