我正在使用Jetpack Compose和Navigation Compose开发一个Android应用程序。该应用程序是一个多模块应用程序,由使用导航库导航到不同屏幕的单个Activity组成。我目前正在通过单点登录实现登录(SSO),使用Chrome自定义选项卡。当用户成功登录且应用收到包含必要数据的深度链接时,我可以从主Activity的Intent中检索这些数据,但是,我不知道如何将这些数据转发到当前显示的登录屏幕的视图模型。
我希望有一个通用的解决方案来将通过深度链接Intent提供的数据发送到当前显示的屏幕的ViewModel,无论它是哪个屏幕。是否有一个等效的onNewIntent()
的导航合成,可用于将数据发送到屏幕上的当前目标?我尝试使用launchSingleTop
导航到相同的目标,但我不知道如何将数据发送到VM。
1条答案
按热度按时间wgmfuz8q1#
您可以通过保留生命周期观察器的DiposableEffect并检查启动回调来访问登录屏幕中的Intent、主编写函数,当我们将Activity
launchMode="singleTask"
保留在清单中时,onNewIntent将触发。下面是findActivity扩展函数。
}