iOS动态链接构建器的解释



我正在尝试弄清楚如何使用firebase的动态链接供iOS向我的iOS应用程序发送自定义的deeplinks。但是,该文档没有任何注释,我对中的长片段>创建一个从参数创建长链接的代码有些困惑。连续大约有30行没有任何评论。

guard let linkString = dictionary[.link]?.text else { return }
guard let link = URL(string: linkString) else { return }
guard let domain = dictionary[.domain]?.text else { return }
let components = FIRDynamicLinkComponents(link: link, domain: domain)
let analyticsParams = FIRDynamicLinkGoogleAnalyticsParameters(
    source: dictionary[.source]?.text ?? "", medium: dictionary[.medium]?.text ?? "",
    campaign: dictionary[.campaign]?.text ?? "")
analyticsParams.term = dictionary[.term]?.text
analyticsParams.content = dictionary[.content]?.text
components.analyticsParameters = analyticsParams
if let bundleID = dictionary[.bundleID]?.text {
  let iOSParams = FIRDynamicLinkIOSParameters(bundleID: bundleID)
  if let fallbackURL = dictionary[.fallbackURL]?.text {
    iOSParams.fallbackURL = URL(string: fallbackURL)
  }
  iOSParams.minimumAppVersion = dictionary[.minimumAppVersion]?.text
  iOSParams.customScheme = dictionary[.customScheme]?.text
  iOSParams.iPadBundleID = dictionary[.iPadBundleID]?.text
  if let iPadFallbackURL = dictionary[.iPadFallbackURL]?.text {
    iOSParams.iPadFallbackURL = URL(string: iPadFallbackURL)
  }
  iOSParams.appStoreID = dictionary[.appStoreID]?.text
  components.iOSParameters = iOSParams
  let appStoreParams = FIRDynamicLinkItunesConnectAnalyticsParameters()
  appStoreParams.affiliateToken = dictionary[.affiliateToken]?.text
  appStoreParams.campaignToken = dictionary[.campaignToken]?.text
  appStoreParams.providerToken = dictionary[.providerToken]?.text
  components.iTunesConnectParameters = appStoreParams
}
if let packageName = dictionary[.packageName]?.text {
  let androidParams = FIRDynamicLinkAndroidParameters(packageName: packageName)
  if let androidFallbackURL = dictionary[.androidFallbackURL]?.text {
    androidParams.fallbackURL = URL(string: androidFallbackURL)
  }
  if let minimumVersion = dictionary[.minimumVersion]?.text, let intVersion = Int(minimumVersion) {
    androidParams.minimumVersion = intVersion
  }
  components.androidParameters = androidParams
}
let socialParams = FIRDynamicLinkSocialMetaTagParameters()
socialParams.title = dictionary[.title]?.text
socialParams.descriptionText = dictionary[.descriptionText]?.text
if let imageURL = dictionary[.imageURL]?.text {
  socialParams.imageURL = URL(string: imageURL)
}
components.socialMetaTagParameters = socialParams
longLink = components.url
print(longLink?.absoluteString ?? "")

顶部的dictionary到底是哪里来的?

firebase动态链接文档确实很糟糕。我通过潜入firebase公共API来了解它是如何工作的。

p.s这是整个起动器项目,此摘要是从。

剪切的。

重要字段的解释

  • 链接是一个URL对象,其中包含要通过参数通过的链接。观看更多信息。

  • 是一个包含您动态链接域的字符串,可以在firebase控制台中找到。(这是 app .goo.gl的链接(

  • BundleId 是您的应用程序捆绑包ID。它可以在您的Xcode项目中找到。

  • sholdback URLS 仅在未安装应用程序而不是App Store Page时打开自定义URL时才能设置。

  • 最小应用版本来自API文档:

    可以打开链接的应用程序的最低版本。如果已安装的应用程序是较旧的版本,则将用户带到AppStore升级应用程序。注意:在收到链接时,打开AppStore是App的开发人员责任声明比当前安装的更高。

  • 自定义方案再次引用API文档:

    如果定义为应用程序的捆绑包ID,则目标应用程序的自定义URL方案。

  • iPad Bundle ID和iPad后备URL 如果您对iPad有不同的应用程序。

  • 所有 AppStoreParams 都应在iTunes Connect页面中找到。

  • 设置 AndroidParams 如果您也有Android App。

此外,该部分在文档中非常含糊:

FIROptions.default().deepLinkURLScheme 

应将此字段设置为您在URL类型下的信息部分中的Xcode项目中设置的方案。

最新更新