🚀
URLEncodeでJetpack ComposeのNavigationでURLを引数に渡すときに出るエラーを解決する
発生したエラー
Jetpack ComposeでNavigationの実装をしており、画面遷移のタイミングで次の画面にURLを渡した買ったのですが、普通にURLを引数に渡すとこんな感じのエラーが出ました。
java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=https://hello...... } cannot be found in the navigation graph NavGraph(0x0) startDestination={Destination(0x142feed7) route=demo}
該当のコード
navController.navigate(AppScreen.WebViewScreen.route + "/https://hello....")
今回はこれを解決します。
解決方法
この問題を解決するには、以下の記述をする必要がありました。
val url = URLEncoder.encode(content.url, StandardCharsets.UTF_8.toString())
.....
navController.navigate(AppScreen.WebViewScreen.route + "/$url")
URLを渡すときにそのままURLを渡すのではなく、エンコードして渡すとエラーが解消できました。
URLにURLを渡す必要がある場合はそれをエンコードする必要があるので今回はこれで解決です!
参考
Discussion