iOS 动态 Link 生成器解释?

iOS Dynamic Link Builder explanation?

我正在尝试弄清楚如何使用 Firebase's Dynamic Links for iOS 从我的 iOS 应用程序向人们发送自定义深度 links。但是,该文档没有任何评论,我对 Create a long link from parameters 下给出的长代码的作用感到有些困惑。连续大约 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 public API.

了解它是如何工作的

P.S here 是从中截取此代码段的整个起始项目。

重要字段说明

  • link是一个URL对象,里面包含了你要传参的link。 Watch 获取更多信息。

  • 是一个字符串,其中包含可以在 firebase 控制台中找到的动态 linking 域。 (这是 link 和 app。goo.gl)

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

  • 后备 url 仅当您希望在未安装应用而不是应用商店页面时打开自定义 URL .

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

    The the minimum version of your app that can open the link. If the installed app is an older version, the user is taken to the AppStore to upgrade the app. Note: It is app's developer responsibility to open AppStore when received link declares higher minimunAppVersion than currently installed.

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

    The target app's custom URL scheme, if defined to be something other than the app's bundle ID.

  • 如果您对iPad.

  • 所有 appStoreParams 都应该在您的 iTunes 连接页面中找到。

  • 设置 androidParams 如果您还有 Android 应用程序。

此外,这部分在文档中非常模糊:

FIROptions.default().deepLinkURLScheme 

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