有没有办法在应用程序已经运行时使用分支深层链接?
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 的新问题以上是关于有没有办法在应用程序已经运行时使用分支深层链接?的主要内容,如果未能解决你的问题,请参考以下文章
即使已经安装了应用程序,分支深度链接也会打开 App Store 而不是 App
从深层链接启动应用程序时未调用 AppDelegate ContinueUserActivity,应归咎于 Firebase SDK