투케이2K

355. (kotlin/코틀린) 안드로이드 웹뷰에서 실시간 프로그레스 진행 상황 이벤트 감지 - WebChromeClient onProgressChanged 본문

Kotlin

355. (kotlin/코틀린) 안드로이드 웹뷰에서 실시간 프로그레스 진행 상황 이벤트 감지 - WebChromeClient onProgressChanged

투케이2K 2023. 7. 20. 20:18

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

            // -----------------------------------------
            // TODO [크롬 클라이언트 설정 실시]
            main_webview!!.webChromeClient = object : WebChromeClient() {


                // TODO [실시간 웹뷰 로드 상태 확인]
                override fun onProgressChanged(view: WebView, progress: Int) {
                    S_Log._E_(S_FinalMsg.LOG_Status_Check, arrayOf(
                        "URL :: " + main_webview!!.url.toString(),
                        "STATUS :: $progress"
                    ))


                    // TODO [웹뷰 로드 완료 상태 : 웹뷰의 호출 상황이 100 인 경우]
                    if (progress >= 100) {
                        S_Log._W_(S_FinalMsg.LOG_Status_Check, arrayOf(
                            "URL :: " + main_webview!!.url.toString(),
                            "STATUS :: " + "웹뷰 호출 완료 상태"
                        ))


                        // ----------------------------------
                        // [웹뷰 표시 설정]
                        try {

                            main_webview!!.visibility = View.VISIBLE

                        } catch (e: Exception) {
                            e.printStackTrace()
                        }
                        // ----------------------------------


                        // ----------------------------------
                        // [저장 된 쿠키 및 세션 값 확인]
                        try {

                            if (cookieManager.hasCookies() == true) {

                                S_Log._W_(S_FinalMsg.LOG_Status_Check, arrayOf(
                                    "URL :: " + main_webview!!.url.toString(),
                                    "저장된 쿠키 확인 :: " + "저장된 쿠키 있음",
                                    "쿠 키 :: " + cookieManager.getCookie(main_webview!!.url).toString()
                                ))

                            }
                            else {

                                S_Log._E_(S_FinalMsg.LOG_Status_Check, arrayOf(
                                    "URL :: " + main_webview!!.url.toString(),
                                    "저장된 쿠키 확인 :: " + "쿠키 없음"
                                ))

                            }

                        } catch (e: Exception) {
                            //e.printStackTrace();
                        }
                        // ----------------------------------
                    }
                }

            }
            // -----------------------------------------

 

반응형
Comments