Firebase动态链接

首先,我们将简要讨论深度链接概念。 深度链接的概念是从另一个应用程序打开移动应用程序的特定内容,或者单击Web链接打开移动应用程序。 让我们举个例子。 首先将您的Instagram帖子分享到Twitter。 现在转到Twitter应用程序或在移动浏览器中打开twitter.com。 现在在推文中查看您的Instagram帖子。 现在单击该帖子,这会将您重定向到自己在Instagram应用上的帖子(如果已安装),否则它将在浏览器中打开该帖子。

因此,使用深层链接可以将用户重定向到您的应用程序,而不是在网络上显示内容,这更加用户友好和方便。 消息传递到其他应用程序也是可能的。 这可以使用自定义网址架构来实现。

现在您想到了,如果我们可以通过深层链接实现Firebase动态链接,那么为什么需要Firebase动态链接。

但是深度链接的局限性在于,这对于尚未安装应用程序的用户将不起作用。 例如,您想向应用程序用户显示个性化的欢迎消息,或者想显示促销优惠,或者想通过单击深层链接将其重定向到应用程序中的特定屏幕。 现在,如果用户尚未安装您的应用程序该怎么办?

在这种情况下,Firebase动态链接可以为您提供正确的解决方案。 这些深层链接可以满足您的所有需求。 通过创建一个动态链接,您可以将用户重定向到适当的平台。 单击此链接,移动应用程序用户将被重定向到其本机应用程序,而网络用户将被重定向到您的网站以获取特定内容。

您还可以自定义此行为。 如果用户尚未安装您的应用程序,则可以将其带到应用程序商店/游戏商店以下载应用程序,或带他在移动浏览器上显示内容。 当用户单击动态链接并安装应用程序时,信息在用户第一次打开应用程序时仍然可用。

Firebase动态链接需要iOS 8或更高版本。

如何创建Firebase动态链接?

您可以通过三种方式创建Firebase动态链接。

  1. 使用Firebase控制台
  2. 使用REST API
  3. 通过将动态链接参数添加到特定于您的应用程序的域来形成URL。

使用Firebase控制台创建动态链接

这对于在社交媒体上创建一个链接共享很有用。

  1. 单击Firebase控制台项目中的“动态链接”部分。
  2. 记下您的Firebase动态链接域,然后单击“新建动态链接”。

3)填写所需的信息,最后单击“创建动态链接”。

在iOS上接收动态链接

要接收您之前创建的Firebase动态链接,您必须在应用程序中包含Dynamic Links SDK,并在应用程序加载时调用handleUniversalLink:和dynamicLinkFromCustomSchemeURL:方法以获取在动态链接中传递的数据。

设置Firebase动态链接SDK

  1. 首先,将Firebase设置为您的iOS项目。 如果您不熟悉Firebase,可以在此处检查设置Firebase。
  2. 在pod文件中添加pod’Firebase / DynamicLinks’
  3. 运行pod install并打开工作区文件。
  4. 检查是否在应用程序设置中指定了应用程序的App Store ID和Apple Developer Team ID。 要查看和编辑应用程序的设置,请转到Firebase项目的“设置”页面,然后选择您的iOS应用程序。
  5. 您可以通过打开以下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文档。

快乐编码!