Firebase 动态链接在 safari swift 中不起作用

Mr.*_*ani 5 ios firebase swift firebase-dynamic-links

我正在使用firebase 动态链接。我面临两个问题, firebase 官方网站没有足够的信息,并且已经进行了谷歌搜索。

(1) 当我以编程方式创建链接时,它在 safari 上不起作用。但如果我复制链接并在 chrome 或其他浏览器中打开它,它的工作就像魅力一样。(也不适用于 Facebook 应用程序)

(2) 我得到了动态链接,它在 chrome 浏览器中工作,没有出现任何错误。但是在 firebase 控制台中,没有列出所有链接,除非我使用控制台创建了动态链接,否则它将出现在控制台中。(以编程方式不反映在控制台上)

这是我创建动态链接的代码:

let strLink = "https://google.com/page?Id="+self.textField1.text!

    guard let deepLink = URL(string: strLink) else { return }

    let components = DynamicLinkComponents(link: deepLink, domain: "e59pd.app.goo.gl")

    let iOSParams = DynamicLinkIOSParameters(bundleID: "com.procorner.eduflex")
    iOSParams.minimumAppVersion = "8.0"
    components.iOSParameters = iOSParams

    let socialParams = DynamicLinkSocialMetaTagParameters()
    socialParams.title = "Title is here..."
    socialParams.descriptionText = "Description is here"
    socialParams.imageURL = URL(string:"https://firebasestorage.googleapis.com/v0/b/todo-list-1da4a.appspot.com/o/shopping%403x.png?alt=media&token=b5f02235-5c1e-4354-94c5-1354eb36bed9")
    components.socialMetaTagParameters = socialParams

    // Build the dynamic link
    let link = components.url
     print("\n\n\n\nlink",link)
    // Or create a shortened dynamic link
    components.shorten { (shortURL, warnings, error) in
        if let error = error {
            print(error.localizedDescription)
            return
        }
        print("\n\n\nshortURL",shortURL)

        self.strGLink = (shortURL?.path)!
        self.textVIew1.text = shortURL?.absoluteString
        // TODO: Handle shortURL.
    }
Run Code Online (Sandbox Code Playgroud)

cla*_*s94 5

简短回答: Chrome 使用 URI 方案,Safari 默认使用通用链接。这意味着您可以在 Chrome 中输入 firebase 链接,它将通过 URI 方案打开应用程序,但在 safari 中,您必须单击firebase 链接才能打开应用程序,因为 safari 使用通用链接。

解释

Firebase 动态链接依赖于使用 URI 方案或通用链接来打开应用程序。Safari 默认使用通用链接,而 Chrome 在安装应用程序后将使用 URI 方案。这很重要,因为通用链接仅在单击时才会打开应用程序,而不是在地址栏中输入或以编程方式打开。要从 Safari 打开该应用程序,您需要将其粘贴到将其注册为链接的位置,然后单击它。

我建议使用消息或注释打开您的 Firebase 链接,因为这将允许您单击Firebase 链接来启用通用链接。