투케이2K

403. (kotlin/코틀린) webview canGoBack 웹뷰 뒤로 가기 페이지 이동 여부 체크 및 webview goBack 페이지 뒤로 가기 수행 본문

Kotlin

403. (kotlin/코틀린) webview canGoBack 웹뷰 뒤로 가기 페이지 이동 여부 체크 및 webview goBack 페이지 뒤로 가기 수행

투케이2K 2023. 8. 28. 13:06

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [모바일 키 이벤트 발생 체크 부분]
    // -----------------------------------------------------------------------------------------
    override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
        if (keyCode == KeyEvent.KEYCODE_BACK) { // TODO [모바일 디바이스의 뒤로가기 키 이벤트가 발생한 경우]
            // ===============================================================
            S_Log._F_(this@A_Webview, S_FinalMsg.LOG_Activity_onBackKey, null)
            // ===============================================================

            // TODO [더이상 웹뷰에서 뒤로갈 페이지가 없을 경우 이거나 특정 로드 주소인 경우]
            if (main_webview!!.canGoBack() == false
                || main_webview!!.url == S_FinalData.WV_LOAD_NAVER_URL == true) {
                S_Log._F_(this@A_Webview, S_FinalMsg.LOG_Webview_Close_Ing, arrayOf(
                    "canGoBack :: " + main_webview!!.canGoBack().toString(),
                    "webviewUrl :: " + main_webview!!.url.toString()
                ))

                // ---------------------------------------------------------------
                // [액티비티 종료 실시]
                // ---------------------------------------------------------------
                try {
                    finish()
                    overridePendingTransition(0, 0)
                } catch (e: Exception) { }
                // ---------------------------------------------------------------

            } else { // TODO [뒤로갈 페이지가 있는 경우]
                S_Log._F_(this@A_Webview, S_FinalMsg.LOG_Webview_Back_Ing, arrayOf(
                    "webviewUrl :: " + main_webview!!.url.toString()
                ))

                // ---------------------------------------------------------------
                // [웹뷰 뒤로 가기 실시]
                // ---------------------------------------------------------------
                try {
                    main_webview!!.goBack()
                } catch (e: Exception) {
                }
                // ---------------------------------------------------------------
            }
        }
        return true
    }

 

반응형
Comments