未安装应用时,Firebase 动态链接会打开 Weblink 而不是 App Store

Posted

技术标签:

【中文标题】未安装应用时,Firebase 动态链接会打开 Weblink 而不是 App Store【英文标题】:Firebase Dynamic link opens Weblink instead of App Store when app is not installed 【发布时间】: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: 生成的长链接包含isiibi参数

【问题讨论】:

【参考方案1】:

检查您的 appStoreId。

我遇到了同样的问题,结果我用我的应用程序的 appStoreId 切换了我的开发团队 ID。

【讨论】:

你能展示如何获取 id 以及我可以将 id 放在哪里以及哪个 id 我也有同样的错误,从应用程序商店安装时应用程序无法运行,否则应用程序运行完美跨度>

以上是关于未安装应用时,Firebase 动态链接会打开 Weblink 而不是 App Store的主要内容,如果未能解决你的问题,请参考以下文章