마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

코틀린 웹뷰가 뜨지 않습니다..

0 추천

코틀린으로 웹뷰를 만드는데 http를 띄워야 하는 상황입니다.

        webView.apply {
            webViewClient = WebViewClient() // 페이지 컨트로를 위한 기본적 함수, 다양한 요청, 알림 수신 기능
            webChromeClient = WebChromeClient() // 크롬환경으로 세팅.
            settings.javaScriptEnabled = true // js 허용 여부
//            settings.setSupportZoom(true) // 화면 줌 허용여부
            settings.builtInZoomControls = false // 화면 확대 축소 허용여부
            settings.displayZoomControls = false // 줌 컨트롤 없애기.
            settings.domStorageEnabled = true  // 로컬 스토리지 사용하여 dom 가져올 수 있도록 함
        }

 이렇게 작성하였지만

%c안드로이드 9 이상에서는 HTTP 평문 통신이 기본적으로 사용되지 않습니다.
    %c앱에서 네트워크 보안 구성 (https://developer.android.com/training/articles/security-config) 을 통해 *.map.naver.com, *.map.naver.net 에 대한 평문 통신을 허용해 주세요.

오류가 뜹니다. 

AndroidManifest.xml에

<uses-permission android:name="android.permission.INTERNET"/>

를 작성하고

android:usesCleartextTraffic="true"

http허용 옵션을 줘도 안 되길래

android:networkSecurityConfig="@xml/network_security_config"

를 작성하여 해봤는데도 계속 흰색 빈 화면 또는 err_name_not_resolved, 평문통신 허용 오류 이런 오류가 발생합니다.. 심지어 https도 떴다 안떴다 해요..

어떤 문제일까요ㅜㅜ

DDIMI (140 포인트) 님이 2023년 3월 9일 질문
DDIMI님이 2023년 3월 9일 수정

1개의 답변

0 추천
@xml/network_security_config는 작성하셨고 혹시 에뮬레이터를 사용하시나요? 그리고 https로 통신을 하게 되기 때문에 인증서 문제가 발생할 수 있습니다. 다른 무제일 수도 있지만 저같은 경우는 회사 개발서버의 api에 접근할 수가 없어서 인증서(root ca)를 에뮬레이터에 설치하고 이걸 network_security_config에 명시해 주어서 해결은 한 적이 있어요. 비슷한 경우가 아닐까 조심스럽게 추측해 봅니다.
spark (225,780 포인트) 님이 2023년 3월 10일 답변
...