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

时间:2017-11-21 13:32:26

标签: ios swift firebase firebase-dynamic-links

我正在使用 firebase动态链接。我正面临着 2个问题 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.
    }

2 个答案:

答案 0 :(得分:2)

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

说明

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

我建议您使用消息或备注打开您的firebase链接,因为这样您就可以点击firebase链接来启用通用链接。

答案 1 :(得分:2)

(1)请说明如何在Safari中测试链接? Chrome以外的其他浏览器是否正常工作?你也是如何在Facebook iOS App中测试的?

如果您将链接粘贴到浏览器地址栏并点击返回,则无效。 Firebase动态链接使用通用链接的原因。链接粘贴到Safari时,Universal Links不会参与。由于AppPreview page,Firebase动态链接仍会正确处理此案例。如果您将链接粘贴到Safari,则应该会看到AppPreview页面。点击此处的OPEN按钮应启用Universal Links并打开您的应用。

Chrome偏离了iOS(和Safari)处理Universal Links的方式。有些人会说偏差越来越好。

(2)使用API​​创建的Firebase动态链接不会显示在控制台中。

推理:我们的一些客户像Google相册每天创建数百万Firebase动态链接。试图在控制台中显示这些信息并不是一个好主意。试图在控制台中使用这些信息可能不会很有趣。

同时,如果您的用例需要您在Firebase控制台中查看所有链接,请随时打开Firebase票证或在此处发布详细信息。我们始终对新功能或改进的想法持开放态度。