Jetpack Compose中如何通过Deep Link实现应用内页面跳转?
Jetpack Compose内通过Deep Link实现页面跳转问题
我想在Jetpack Compose应用内用Deep Link实现页面跳转,但对Deep Link的结构理解不透彻,相关详细说明也少。Deep Link一般用于跨应用或网页URL跳转,但没见过它在应用内页面跳转的用法。我的需求是:点击HomeScreen里的条目(比如pasta内容)时,通过该内容的Deep Link跳转到DetailScreen;同时DetailScreen可以从多个页面进入,部分页面会传入objectId而非Deep Link。我写了代码但没解决问题,求有经验的开发者帮忙。
底部导航图代码
fun NavGraphBuilder.bottomBarNavGraph( navHostController: NavHostController ) { navigation( startDestination = BottomBarScreen.HomeScreen.route, route = BOTTOM_BAR_ROUTE ){ composable(route = BottomBarScreen.HomeScreen.route){ HomeRoute(navHostController) }
健康模块导航图代码
fun NavGraphBuilder.healthNavGraph( navHostController: NavHostController ) { navigation( startDestination = BottomBarScreen.HealthScreen.route, route = BOTTOM_BAR_HEALTH_ROUTE ) { composable( route = "${HealthScreen.HealthFoodDetailScreen.route}?$OBJECT_ID={$OBJECT_ID}?$DEEPLINK_URI={$DEEPLINK_URI}", deepLinks = listOf(navDeepLink { uriPattern = "$DEEPLINK_URI/{$OBJECT_ID}" action = Intent.ACTION_VIEW }), arguments = listOf( navArgument(name = OBJECT_ID) { type = NavType.IntType }, navArgument(name = DEEPLINK_URI) { type = NavType.StringType defaultValue = "" } )) { backStackEntry -> FoodDetailRoute(navHostController = navHostController) }
HomeScreen条目组件代码
Card( modifier = Modifier .padding(end = 10.dp, start = 10.dp, bottom = 10.dp) .fillMaxWidth() .height(160.dp) .clickable { // 点击时想用Deep Link跳转到详情页 },
Manifest配置代码
<application . . .> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:host="compose" android:scheme="example" /> </intent-filter> ...
内容的提问来源于stack exchange,提问作者NewPartizal
相关产品推荐
相关产品推荐

