Jetpack Compose 深度链接条件导航

问题描述 投票:0回答:1

我面临的问题是我没有看到任何关于使用 Jetpack Compose 的条件导航的好的示例。特别是当涉及到深度链接时,应用程序支持基于某些先决条件的特定屏幕的深度链接。你们如何暗示。那些场景?

在我工作的应用程序中,我们使用一些应用程序视图模型,我们在其中检查用户是否登录,这在从启动器启动应用程序时工作正常。

问题是,如果你触发一个深层链接,检查用户是否登录将被忽略,用户可能会看到我不想发生的内容。

如果您可以分享您的解决方案,那将有很大帮助。

谢谢

更新:一般来说,通过为每个场景使用 NavHost 来分离这些场景是一种很好的做法,但如果这是到达这里的方式,我找不到任何信息

我还运行了一些简单的测试来查看 Compose Framework 的行为方式。当应用程序启动时,开始目的地被触发并且一切都按预期工作,检查用户是否登录或不触发下一个目的地。在 Intent 的情况下,onNewIntent|onResume 似乎会覆盖任何其他状态并触发导航。

android-jetpack-compose deep-linking jetpack-compose-navigation
1个回答
0
投票

我不完全知道你的应用导航是什么样子的,但我可以通过单个活动和片段导航给你我的方法。

  1. 检索主活动中的深层链接并将其传递给视图模型(理想情况下,它应该在单独的活动/片段中完成)。
  2. 启动完成身份验证的登录片段。
  3. 在您的主页片段中,检查视图模型中是否存在可用的深层链接并进行处理。这可以在 onCreateView 中完成,但由于每次重新创建时都会检查深度链接的空值,因此将其放在 onAttach() 中可能更合适
  4. 重置视图模型中的深层链接,因此它不会被多次处理。
© www.soinside.com 2019 - 2024. All rights reserved.