我试图弄清楚如何使用Firebase's Dynamic Links for iOS向iOS应用程序中的人发送自定义深层链接。但是,文档没有任何评论,我对从参数创建长链接下提供的长代码有何疑惑。没有一条评论,连续约有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
究竟来自哪里以及其他部分完成了什么?
答案 0 :(得分:10)
Firebase动态链接文档非常糟糕。通过深入了解Firebase公共API,我了解它是如何工作的。
P.S here是整个启动项目,此片段是从中剪切的。
链接是一个网址对象,其中包含您要通过参数传递的链接。 Watch了解更多信息。
域是一个字符串,其中包含可在firebase控制台中找到的动态链接域。 (它是 app .goo.gl的链接)
bundleID 是您应用的捆绑ID。它可以在您的Xcode项目中找到。
后备网址仅在您未安装应用而不是应用商店页面时才能打开自定义网址时设置。
最低应用版本来自API文档:
可以打开链接的应用的最低版本。如果安装的应用程序是旧版本,则会将用户带到AppStore以升级应用程序。注意:当收到的链接声明比当前安装的更高的minimunAppVersion更高时,应用程序的开发人员负责打开AppStore。
自定义方案再次引用API文档:
目标应用的自定义网址方案,如果被定义为应用程序的软件包ID以外的其他方式。
iPad套装ID和iPad后备网址。
所有 appStoreParams 都应该在你的itunes连接页面中找到。
如果您还有Android应用,请设置 androidParams 。
FIROptions.default().deepLinkURLScheme
此字段应设置为您在URL类型下的信息部分中的Xcode项目中设置的方案。