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에 전달해야 한다면 인코딩을 해야 하기 때문에 이번에 해결되었습니다!

참고 자료


https://stackoverflow.com/questions/68950770/passing-url-as-a-parameter-to-jetpack-compose-navigation

좋은 웹페이지 즐겨찾기