如果未以编程方式安装Firebase动态链接,则重定向至iOS App Store

时间:2019-02-04 19:11:12

标签: swift xcode firebase firebase-dynamic-links

“我的动态”链接在大多数情况下有效,并且全部通过编程方式完成:

  • 用户单击链接,并通过“打开”按钮将其重定向到该站点
  • 链接打开应用程序,并让用户进入应用程序中的正确位置

但是我想补充一点,如果用户没有安装我的应用程序,那么我希望将其重定向到App Store,以显示我的应用程序。

如何以编程方式添加此内容?我知道我可以在链接前缀下创建一个动态链接,该链接将按照我希望的方式运行-但我想以编程方式进行操作,因为我已经以编程方式构造了该链接的行为。

谢谢大家。

这是我的代码,用户可以在其中共享其链接:

@IBAction func shareFirstButton(_ sender: UIButton) {
        if let uid = Auth.auth().currentUser?.uid {
            guard let link = URL(string: "https://www.testApp123.com/uid=" + uid) else {
                return
            }
            let dynamicLinksDomain = "testApp123.page.link"
            let linkBuilder = DynamicLinkComponents(link: link, domain: dynamicLinksDomain)
            linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.burgertralla.myTestApp")
            linkBuilder.shorten { (url, _, _) in
                if let url = url {
                    let activityViewController = UIActivityViewController(activityItems: [url], applicationActivities: nil)
                    activityViewController.popoverPresentationController?.sourceView = self.view
                    self.present(activityViewController, animated: true, completion: nil)
                }
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

您必须添加 linkBuilder.iOSParameters.appStoreID

答案 1 :(得分:0)

确保在应用设置中指定了应用的应用商店ID和应用ID前缀。要查看和编辑您的应用设置,请转到Firebase项目的“设置”页面,然后选择您的iOS应用。

通过打开动态链接域中托管的apple-app-site-association文件,确认Firebase项目已正确配置为在iOS应用中使用动态链接。例如:

https://example.page.link/apple-app-site-association

如果您的应用已连接,则apple-app-site-association文件包含对您应用的App Store ID和捆绑ID的引用。例如:

{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

如果details属性为空,请仔细检查您是否指定了App ID前缀。请注意,您的应用ID前缀可能与团队ID不同。