我想在单击包含标题、正文和ID等数据的通知时导航到可组合屏幕。创建路由时应将此ID传递给可组合屏幕。
object Screen : AppDestination("screen/{id}") {
fun createRoute(id: String): String {
return "screen/$id"
}
这是我的组合屏幕导航
fun NavGraphBuilder.screenGraph(
navController: NavHostController
) {
composable(
route = Screen.route,
arguments = listOf(navArgument("id") { type = NavType.StringType },
navArgument("idnotation") { type = NavType.StringType }),
deepLinks = listOf(
navDeepLink {
uriPattern = "myapp://screennavigation/idnotation={idnotation}"
}
) {
Screen(
payloadId = it.arguments?.getString("id"),
)
}
}
“id”是单击列表中的某个项目以导航到该项目的时间。
“idNotation”是我从通知中获得的ID。
如果在调用路由createRoute之后在深层链路中获取idNotation,如何将其传递给路由?
我测试了如何将Id传递给通知的挂起Intent内的Intent,这很有效,我得到了正确的ID,只是不确定如何将其传递给路由。
1条答案
按热度按时间qni6mghb1#
你的深层链接是
这意味着
{idnotation}
占位符的值将被放入带有键idnotation
的参数中,如果您希望它填充id
字段(以匹配您的route和arguments
列表),则需要使用{id}
: