【发布时间】:2020-01-10 09:24:29
【问题描述】:
我正在使用 Firebase 动态链接通过邮件发送信息。
当我在安装应用程序时尝试打开它们时,这些链接有效。
但是,当未安装应用程序时,它们无法正常工作。
当我在未安装应用程序的情况下打开链接时,他们会打开我的主页,更准确地说是实际链接。
我的代码在这里:
static func generateDynamicLinkFromProduct(product: Product, completion: @escaping (URL?) -> Void) {
let domain = "https://my-homepage.com/"
let bundleID = Bundle.main.bundleIdentifier
var package = "my.app.on.android"
let meta = product.metaJson!
guard let link = URL(string: domain + "product=" + meta) else {
completion(nil)
return
}
let dynamicLinksDomainURIPrefix = "https://myapp.page.link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix)
linkBuilder?.iOSParameters = DynamicLinkIOSParameters(bundleID: bundleID!)
linkBuilder?.iOSParameters?.appStoreID = "APP_STORE_ID"
linkBuilder?.navigationInfoParameters = DynamicLinkNavigationInfoParameters()
linkBuilder?.navigationInfoParameters?.isForcedRedirectEnabled = true
linkBuilder?.androidParameters = DynamicLinkAndroidParameters(packageName: package)
let options = DynamicLinkComponentsOptions()
options.pathLength = .short
linkBuilder?.options = options
let longLink = linkBuilder?.url
print(longLink)
linkBuilder?.shorten() { url, warnings, error in
print(url)
if (error == nil) {
completion(url)
} else {
completion(nil)
}
}
}
(domain、bundle、package和prefix替换为实际应用的数据)
动态链接打开link的实际内容,即打开https//my-homepage.com/product=
调试的输出显示如下:
€dit:
生成的长链接包含isi和ibi参数
【问题讨论】:
标签: ios swift firebase-dynamic-links