Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Firebase动态链接在safari swift中不起作用_Ios_Swift_Firebase_Firebase Dynamic Links - Fatal编程技术网

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

Ios Firebase动态链接在safari swift中不起作用,ios,swift,firebase,firebase-dynamic-links,Ios,Swift,Firebase,Firebase Dynamic Links,我正在使用firebase动态链接。我面临两个问题,firebase官方网站没有足够的信息,已经在谷歌上搜索过了 (1) 当我以编程方式创建链接时,它在safari上不起作用。但若我复制链接并在chrome或其他浏览器中打开它,那个么它会像魅力一样工作。(也不适用于facebook应用程序) (2) 我得到了动态链接,它在chrome浏览器中工作,没有给出任何错误。但在firebase控制台上没有列出所有链接,除非我使用控制台创建了动态链接,否则它将出现在控制台中。(以编程方式不反映在控制台上)

我正在使用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.
    }

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

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

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

(1)请澄清如何在Safari中测试链接?除了Chrome之外,还有哪些浏览器工作正常?你如何在Facebook iOS应用程序中进行测试

若将链接粘贴到浏览器地址栏并点击“返回”,则此操作将不起作用。Firebase动态链接使用通用链接的原因。将链接粘贴到Safari时,通用链接将不会接合。Firebase动态链接仍将正确处理此情况,因为。如果您粘贴了Safari的链接,您应该会看到AppPreview页面。点击此处的
OPEN
按钮应启用通用链接并打开您的应用程序

Chrome与iOS(和Safari)处理通用链接的方式不同。有些人会说,这是向更好的方向发展

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

理由是:我们的一些客户喜欢谷歌照片,每天创建数百万个Firebase动态链接。试图在控制台中显示这么多信息看起来不是个好主意。试图在控制台中使用这些信息可能并不有趣


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

Firebase动态链接将仅在iOS 8上使用自定义URL方案。我相信OP问题并非如此。