Android WebView 타임아웃(TimeOut) 기능

Android WebView는 페이지 관련해서 타이아웃 설정이 없다

상황에 따라 bad network 상황시 WebViewClient에 타이아웃 관련 기능을 통해 사용자에게 네트워크 장애표시를 해야할 필요가 있었다.

다음의 동작으로 간략한 webview에 타임아웃 기능을 구현해 보았다.



mWebView.setWebViewClient(new WebViewClient() {
     private val loadingTimeOut = 1000 * 10
     private var timeout = false


    //페이지 타임아웃 타이머
    private val pageTimeoutTimer: CountDownTimer = object : CountDownTimer(loadingTimeOut.toLong(), 1000) {

        override fun onTick(millisUntilFinished: Long) {
        }

        override fun onFinish() {
            Log.d("pageTimeoutTimer onFinish")


            if (timeout) {
                //네트워크 장애관련 페이지 노출
                Log.d("onPageStarted networkFailActivityForError")

            }

            pageFinishDone()
        }
    }


    //페이지 완료 처리
    private fun pageFinishDone() {
        pageTimeoutTimer.cancel()
        timeout = false

        dismissLoading()
    }


    override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
        super.onPageStarted(view, url, favicon)
        Log.d("onPageStarted WebView URL : $url")

        pageTimeoutTimer.cancel()
        pageTimeoutTimer.start()
        timeout = true

        showLoading()
    }

    override fun onPageFinished(view: WebView?, url: String?) {
        super.onPageFinished(view, url)
        Log.d("onPageFinished WebView URL : $url")

        pageFinishDone()
    }

});

댓글 없음:

댓글 쓰기

Android Compose Animation

나타남 /  사라짐 애니메이션 AnimatedVisibility 의 enter 및 exit 매개변수를 사용하면 컴포저블이 표시되고 사라질 때의 동작을 구성할 수 있습니다. 자세한 내용은  전체 문서 를 참고하세요. 컴포저블의 가시성을 애니메이션화하는 ...