카테고리 없음
안드로이드 오류 "ERROR:ssl_client_socket_impl.cc handshake failed" 웹뷰 해결 방법
글만쓰는 글쓰니
2022. 12. 10. 16:43
에러 발생
ERROR:ssl_client_socket_impl.cc(982) handshake failed 오류가 발생했다.
웹뷰에서 INTERNET permission을 획득했고, loadUrl을 호출했는데도 불구하고 말이다.
wv.loadUrl("https://naver.com")
에러 원인
<application
android:usesCleartextTraffic="true">
<activity android:name=".GuideActivity"
usesCleartextTraffic을 true로 설정하여 해결
Indicates whether the app intends to use cleartext network traffic, such as cleartext HTTP. The default value for apps that target API level 27 or lower is "true". Apps that target API level 28 or higher default to "false".
즉, 높은 타겟 app들에 대해서는 기본 값이 false로 되어있음, 이는 cleartext를 사용할 것인지를 체크하는 것으로 웹뷰에서 핸드셰이크 오류 발생시 true 변경시 자연스럽게 해결 됨을 확인할 수 있음
cleartext란 암호화 되지 않은 텍스르로, 보안적인 이슈로 인해 기본 값을 false로 설정한 것이다.
따라서, 굳이 webview를 로드하고 싶을 경우에는 해당 플래그로 값을 true설정할 것!
또다른 에러 발생
핸드셰이크 오류는 사라졌지만, load 시에 다음과 같은 오류가 발생했음
we're sorry but django-vue doesn't work properly without JavaScript enabled. Please enable it to continue
해당 오류는 webview에 javascript enable을 설정하여 해결 kotlin파일 내에 다음과 같은 코드 삽입
val ws : WebSettings = wv.settings
ws.javaScriptEnabled = true
ws.domStorageEnabled = true
ws.builtInZoomControls = true
반응형