未安装应用程序时,Firebase Dynamic link 打开 Weblink 而不是 App Store
Firebase Dynamic link opens Weblink instead of App Store when app is not installed
我正在使用 Firebase Dynamic links 通过邮件发送信息。
当我尝试在安装应用程序时打开它们时 links 工作。
但是,当未安装该应用程序时,它们无法正常工作。
当我在未安装应用程序的情况下打开 link 时,他们会打开我的主页,更准确地说是实际的 link。
我的代码在这里:
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打开link
的实际内容,即打开https//my-homepage.com/product=
调试的输出显示如下:
€编辑:
生成的长link包含isi
和ibi
参数
检查您的 appStoreId。
我遇到了同样的问题,结果我用我的应用程序的 appStoreId 切换了我的开发团队 ID。
我正在使用 Firebase Dynamic links 通过邮件发送信息。
当我尝试在安装应用程序时打开它们时 links 工作。
但是,当未安装该应用程序时,它们无法正常工作。
当我在未安装应用程序的情况下打开 link 时,他们会打开我的主页,更准确地说是实际的 link。
我的代码在这里:
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打开link
的实际内容,即打开https//my-homepage.com/product=
调试的输出显示如下:
€编辑:
生成的长link包含isi
和ibi
参数
检查您的 appStoreId。
我遇到了同样的问题,结果我用我的应用程序的 appStoreId 切换了我的开发团队 ID。