如何知道应用程序是通过 didFinishLaunchingWithOptions 中的 firebase 动态链接安装的?
Posted
技术标签:
【中文标题】如何知道应用程序是通过 didFinishLaunchingWithOptions 中的 firebase 动态链接安装的?【英文标题】:How to know app was installed through firebase dynamic link in didFinishLaunchingWithOptions? 【发布时间】:2017-11-23 08:47:10 【问题描述】:我正在我的 ios 应用程序中实现 firebase 动态链接,我已经可以解析链接,重定向到 AppStore 等。现在我想区分应用程序的第一次运行,当用户从动态链接安装它时 - 我想跳过介绍,向他展示预计要展示的内容。
有没有办法在进入 didFinishLaunchingWithOptions 之前知道应用是如何打开的?
【问题讨论】:
【参考方案1】:当 Firebase 动态链接 iOS SDK 完成检索待处理(延迟)动态链接时,将调用方法 application:openURL:options:
。
如果找到挂起的动态链接,对象[[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url]
将具有非零属性url
。 url
将等于您的深层链接,该用户在未安装您的应用程序时点击了该链接。如果未找到链接,则此属性将为 nil。
我建议您在didFinishLaunchingWithOptions
中显示“加载屏幕”。当 Firebase 动态链接 SDK 将结果传递给您时,如果找到待处理的动态链接,您可以继续自定义载入。如果未找到待处理的动态链接,则默认加入。请记住,如果网络速度很慢,这可能需要一些时间。您可能希望将超时设置为 X 秒,以免用户在“加载屏幕”时停留太久。
关于在 iOS 上接收 Firebase 动态链接的文档https://firebase.google.com/docs/dynamic-links/ios/receive
【讨论】:
Ivanow "当 Firebase 动态链接 SDK 将结果传递给您时,如果找到待处理的动态链接,您可以继续自定义载入。如果未找到待处理的动态链接,则可以使用默认载入。"但是,如果永远不会调用 openURL,我怎么知道是否找到了挂起的动态链接?因为并非总是使用动态链接打开/下载应用程序。我真的希望你能帮我解决这个问题,谢谢。 @muyat openURL 即使没有找到挂起的链接也会被调用。您将收到类似于“://google/link/?dismiss=1&is_weak_match=1”的链接。请参阅此评论 github.com/firebase/firebase-ios-sdk/issues/… 我正在努力改进文档以明确这一点。如果您没有看到 openURL: 请发表评论,如本答案所述。 @Ivanow 感谢您的回复。我将尝试实现这一点,并让您知道一切是否对我有用!再次感谢。 @Ivanow 加载屏幕完成后,我需要知道应用程序是否使用动态链接打开。延迟启动屏幕是可能的,但要延迟多长时间? 2、3 或 5 秒?希望收到您的来信! “加载屏幕”是指您自己的 UIViewController 子类,它将显示您的应用程序徽标和 UIActivityIndicator 等信息。您可以随时将此视图控制器保持在屏幕上,并且您的应用不会被杀死。以上是关于如何知道应用程序是通过 didFinishLaunchingWithOptions 中的 firebase 动态链接安装的?的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 不推送视图控制器
如何知道应用程序是通过 didFinishLaunchingWithOptions 中的 firebase 动态链接安装的?