ios - 未安装应用时,Firebase 动态链接会打开 Weblink 而不是 App Store
问题描述
我正在使用 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
参数
解决方案
检查您的 appStoreId。
我遇到了同样的问题,结果我用我的应用程序的 appStoreId 切换了我的开发团队 ID。
推荐阅读
- google-sheets - 使用查询公式搜索,其中单元格不是空的
- lua - Roblox Lua 中的数据存储
- python - 无法使用熊猫一次复制多个excel列
- c++ - var /= "SomeString" 记录在哪里?
- ruby-on-rails - Rails i18n - 如何在 fields_for 中为 has_one 继承模型翻译模型
- ios - 使用导航控制器传递数据时 viewDidLoad() 加载两次 - SWIFT
- python - 阻止 StanfordCoreNLP 连接到 StanfordCoreNLP 服务器
- ssh - 是否可以将我的本地电脑放在 gcloud 项目域中?
- python - 如何将 TkInter 中的按钮分配给我的脚本?
- android - 在 PageKeyedDataSource 中调用挂起函数的正确方法