투케이2K

510. (kotlin/코틀린) [간단 소스] 웹뷰 Webview onConsoleMessage 콘솔 메시지에서 Error 에러 타입 레벨 확인 방법 본문

Kotlin

510. (kotlin/코틀린) [간단 소스] 웹뷰 Webview onConsoleMessage 콘솔 메시지에서 Error 에러 타입 레벨 확인 방법

투케이2K 2024. 7. 23. 19:46
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

                // TODO [웹 브라우저 콘솔 로그 확인]
                override fun onConsoleMessage(consoleMessage: ConsoleMessage): Boolean {
                    // ---------------------------------------------------
                    /*
                    S_Log._E_(S_FinalData.LOG_Message_Res, arrayOf(
                        "URL :: " + main_webview!!.url.toString(),
                        "message [1] :: " + consoleMessage.message().toString(),
                        "message [2] :: $consoleMessage",
                        "sourceId :: " + consoleMessage.sourceId().toString()
                    ))
                    // */
                    // ---------------------------------------------------
                    // TODO [에러 발생 로그 인 경우] : 네이티브 파일 쌓기
                    try {
                        val lvl = consoleMessage.messageLevel()
                        
                        if (lvl == MessageLevel.ERROR
                            || consoleMessage.message().toString().replace(" ".toRegex(), "").lowercase(Locale.getDefault()).startsWith("error") == true
                            || consoleMessage.message().toString().replace(" ".toRegex(), "").lowercase(Locale.getDefault()).startsWith("fail") == true
                            || consoleMessage.message().toString().replace(" ".toRegex(), "").lowercase(Locale.getDefault()).startsWith("exception") == true
                            || consoleMessage.message().toString().replace(" ".toRegex(), "").lowercase(Locale.getDefault()).startsWith("bug") == true) {
                            S_Log._F_(this@A_Webview, ACTIVITY_NAME + " : onConsoleMessage : MessageLevel.ERROR : 웹 에러 발생 로그 저장", arrayOf(
                                "Web_Url :: " + main_webview!!.url.toString(),
                                "Web_SourceId :: " + consoleMessage.sourceId().toString(),
                                "Web_LineNumber :: " + consoleMessage.lineNumber().toString(),
                                "Error_Message :: " + consoleMessage.message().toString()
                            ))
                        }
                    } catch (e: Exception) {
                        e.printStackTrace()
                    }
                    // ---------------------------------------------------
                    // TODO [chromium 크롬 자체 로그 출력] : 크롬 로그 검색 : [INFO:CONSOLE(533)]
                    return super.onConsoleMessage(consoleMessage)
                    // ---------------------------------------------------
                }

 

반응형
Comments