기존에 자바로 만들어놓은 테스트용 코드를
코틀린으로 마이그레이션하는데 한참 고민하다가
이것저것 하다보니 성공해서 올려놓음.
onclosewindow, createwindow 다 적용가능
1. onCretae내부선언
binding.mWebView.setWebViewClient(WebViewClient())
binding.mWebView.setWebChromeClient(webChromeClient())
binding.mWebView.postUrl(getText(R.string.URL).toString(), postData.toByteArray())
2. inner class 정의 (feat. Volley)
inner class webChromeClient : WebChromeClient() {
override fun onConsoleMessage(consoleMessage: ConsoleMessage?): Boolean {
consoleMessage?.apply {
Log.d("webviewMsg3", "${message()} -- From line ${lineNumber()} of ${sourceId()}")
if (message() == getText(R.string.errMsg1).toString() || message() == getText(R.string.errMsg2).toString()) {
val queue = Volley.newRequestQueue(this@CertiWebView)
queue.add(jsonArrayRequest)
val intent = Intent(this@CertiWebView, CarAddActivity::class.java)
startActivity(intent)
}
}
return true
}
override fun onJsAlert(view: WebView, url: String, message: String, result: JsResult): Boolean {
if(message == getText(R.string.okMsg).toString()) {
}
Log.d("webViewMsgJS4", message)
result.cancel()
return true
}
}
onConsoleMessage 는 시스템 에러 메세지를 제공하고
onJsALert는 개발자가 사용자에게 제공하는 메세지를 출력하는거임.
+++ 참고
웹뷰 액티비티에서 정상종료 직전에 Volley 통신을 하려고 했었는데,
너무 복잡한것 같아서 별도 액티비티로 이동하여 처리하기로 함.
Volly 관하여 게시물 있으니 궁금하면 참고가능
'안드로이드[Java | Kotlin]' 카테고리의 다른 글
Adapter 내부에서 키보드 올리고 내리기(feat. EditText) (0) | 2022.04.25 |
---|---|
[Android Studio] 갑자기 파일 다 날라갔을 때 Local History (0) | 2022.04.18 |
[Java/Kotlin] volley Request POST값 전달 (Stringrequest, JSONrequest) (0) | 2022.02.14 |
[Java/Kotlin] API 관련 해시키값 출력 / SHA-1 인증서 (0) | 2022.02.08 |
[안드로이드 JAVA] WebView close에러 "Scripts may close only the windows that were opened by.." (0) | 2022.01.19 |