通过 Safari 打开时,Firebase 动态链接不会重定向到应用程序

Posted

技术标签:

【中文标题】通过 Safari 打开时,Firebase 动态链接不会重定向到应用程序【英文标题】:Firebase Dynamic Link doesn't redirect to the app when open through Safari 【发布时间】:2018-02-28 13:10:28 【问题描述】:

我在我的应用程序中添加了Firebase Dynamic Link,当我通过Google ChromeiPhone 链接中打开时,它会将我重定向到应用程序,但是当我尝试通过Safari 打开应用程序时(我通过 Notes 打开链接,而不是直接从 Safari),它不会打开应用程序。

我在真实设备上进行测试,而不是在模拟器中。

我关注了官方Firebase Dynamic Links Tutorial。

可能出了什么问题,如何解决?

【问题讨论】:

Safari 是您的默认浏览器吗? 是的,Safari 是我的默认浏览器! 你设置了url方案吗?您是否在 appDelegate 类方法名称“openURL”中收到回调?。 我已经设置了 URL Scheme,我没有在回调中收到任何内容,因为通过 Safari 打开时应用程序没有被调用 好的,你知道 Chrome 使用 URI 方案,Safari 默认使用通用链接吗? 【参考方案1】:

我的问题是在 Xcode Capabilities Associated Domains 的 Tab 中,在 Domains 字段中,我写了错误的域,而不是 appplinks:app_id.app.goo.gl 我写了:appplinks:app_id.goo.gl,所以我错过了.appapp_id之后,改了之后就可以正常工作了!

【讨论】:

根据firebase官方文档,我们应该在关联域中设置值,例如applinks:your_subdomain.page.link你能告诉我app_id和app是什么例子【参考方案2】:

将 applinks:appName.page.link 添加到 xcode 中的关联域

https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_associated-domains 您无法通过 safari 打开您的应用,您只能通过点击链接或使用 iPhone 相机扫描它(QR)来打开它

【讨论】:

我确实添加了这个,我没有在 safari 中输入 URL,而是将其添加到注释中并从那里单击链接,但它仍然只在 safari 中而不是在应用程序中打开它。不过,它在模拟器中确实可以正常工作,所以我迷路了。有什么想法吗?【参考方案3】:

我们在尝试在我们的应用中实现 Firebase 动态链接时发现的一件事是,Apple 应用关联文件必须位于网络服务器上的 .well_known 目录中。 Apple 的应用关联文档指出关联文件可以位于根目录或 .well_known 中

Place this file either in your site’s .well-known directory, or directly in its root directory.

Setting Up an App's Association File

但是,在设备上执行全新安装应用程序时查看网络服务器日志时,我们看到对 .well_known 目录进行了调用。一旦我们将关联文件复制到 .well_known 目录,Firebase 动态链接就会按预期工作。

【讨论】:

以上是关于通过 Safari 打开时,Firebase 动态链接不会重定向到应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Firebase 缩短的动态链接网址检索动态链接

Flutter Firebase 消息传递 - 应用打开时未显示推送通知

当应用程序未打开时,可以在 Firebase 消息服务中完成哪些任务?

iPhone 6+ Mobile safari iOS 8 Landscape with tabs open and Bootstrap navbar-fixed-top 在打开时不会关闭

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

IOS - Firebase 动态链接打开应用但在状态栏上显示文本按钮