具有即时/(动态)功能模块的导航组件

Joa*_*Ley 11 android android-intent android-instant-apps android-architecture-components android-architecture-navigation

我正在尝试实现具有动态功能的导航组件

所以结构看起来像这样:

  • 应用程式(dynamicFeatures = []在gradle中包含动态程式)
  • 特征

    • 登录
    • 等等
  • 库-> globalNav

我一直在阅读很多没有成功的方法,因为每个功能都是完全隔离的,如何将它们粘合在一起而不相互依赖

例如,应用程序(app module)以开头,SplashActivity并检查会话状态,所以我的问题是我应该如何启动login_graphhome_graph,在第一种情况下,应在完成身份验证流程后启动主目录?

我目前正在尝试将它们粘合在一起的方式是使用一个globalNav模块(android-library),我发现了一些解决方法:

  • 完整的类路径,这意味着我从className开始意图(不好的是,因为它不是真正可扩展的,并且使得维护PITA成为可能)
Intent().setClassName(context.packageName, className).also { context.startActivity(it) }
Run Code Online (Sandbox Code Playgroud)
  • 深层链接(我想用作导航图的深层链接已包含那些链接),但是由于某种原因,即使只有我的应用程序使用它,它也始终显示“选择完整操作”选择器。

    • 我已经尝试过使用actions与深度链接相同的行为

任何建议将是巨大的:)


PS:我一直在浏览/阅读的一些参考资料:

PSS:如果我找到一个好的解决方案,我会尽力解决这个问题,我将确保也回答。

编辑

对于目前对此尚不支持的任何对此感兴趣的人,您可以在此处加注星标:https : //issuetracker.google.com/issues/132170186

key*_*fer 3

使用组件支持按需功能模块中的导航navigation-dynamic-feature-*。最新版本可以在maven.google.com上找到。

我们确实有一个示例可以演示 XML 和 Kotlin DSL 声明的可能性。

该文档可在此处获取

如需了解更多信息,您还可以观看2019 年 Android 开发者峰会的录音