URLEncodeでJetpack ComposeのNavigationでURLを引数に渡すときに出るエラーを解決する
2837 ワード
発生したエラー
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を渡す必要がある場合はそれをエンコードする必要があるので今回はこれで解決です!
参考
Author And Source
この問題について(URLEncodeでJetpack ComposeのNavigationでURLを引数に渡すときに出るエラーを解決する), 我々は、より多くの情報をここで見つけました https://zenn.dev/jobs/articles/a0a37079437705著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol