有没有办法在应用程序已经运行时使用分支深层链接?

Posted

技术标签:

【中文标题】有没有办法在应用程序已经运行时使用分支深层链接?【英文标题】:Is there a way to use Branch deeplinks while the app is already running? 【发布时间】:2016-08-02 07:31:41 【问题描述】:

正如 Branch 文档所述和我当前的实现,在 AppDelegate 中检测到分支链接,相应地注册了一个视图控制器,然后从那里启动。

有没有办法我可以不在 AppDelegate 中而是在其他地方做到这一点? 我的主要问题是,如果我的应用程序已经启动并且有人点击了 Branch Deeplink,它会正常工作,但会将我带回到应用程序的启动屏幕,而不是停留在当前启动的视图。

我尝试过使用

[branch initSessionWithLaunchOptions:launchOptions automaticallyDisplayDeepLinkController:NO];

并从其他地方启动视图控制器,但现在我不明白如何调用“deepLinkingCompletionDelegate”来获取链接随附的数据。

【问题讨论】:

文档指出您可以注册您的特定 VC 以进行深度链接 dev.branch.io/getting-started/deep-link-routing/guide/… 【参考方案1】:

来自分公司的亚历克斯:

这些代码 sn-ps 不需要在您的 AppDelegate 中,但它们确实需要在正确的应用生命周期方法中调用。定义这些的典型位置是 AppDelegate,将它们放在其他任何地方将是一个更高级的实现。即使你这样做了,效果也是一样的,而且你不会避免你发现的问题。

听起来您正在使用我们的基本automatic deep link routing 方法。你要做的是build your own custom router,这样你就可以智能地决定如何处理链接数据。换言之,您仍会立即接收链接参数,但如果应用程序已在运行,您将能够决定不打开启动屏幕

【讨论】:

嗨,亚历克斯。我们尝试使用自定义路由器方法获取参数,但之后我们无法获取任何参数来检查导航。你知道有什么问题吗?链接有效,但在调试模式下,我无法使用构建您自己的自定义路由器时提供的代码获取任何参数。 @Andreas777 这可能是由多种原因引起的。一种常见的情况是,如果您的应用程序中使用的分支键与用于创建链接的分支键不匹配。我会先检查一下,然后如果它仍然无法正常工作,请继续询问更多细节甚至submit a ticket to our Integrations team 的新问题

以上是关于有没有办法在应用程序已经运行时使用分支深层链接?的主要内容,如果未能解决你的问题,请参考以下文章

撤销或停用或删除 branch.io 的深层链接

即使已经安装了应用程序,分支深度链接也会打开 App Store 而不是 App

从深层链接启动应用程序时未调用 AppDelegate ContinueUserActivity,应归咎于 Firebase SDK

在 iOS 上配置 Firebase 应用后,Branch.io 深层链接停止工作

使用 React 实现分支深度链接

在创建 branch.io 深层链接时添加应用程序版本检查