[android] WebView 접속 상태 체크

깨미·2021년 6월 11일
0

📱 Android 📱

목록 보기
12/16
post-thumbnail

WebView를 사용할 때 페이지 접속 상태를 체크하는 방법이 있는데 WebViewClient 를 사용하는 것이다.
WebViewClient에는 다양한 method가 있어 이를 활용하면 된다.
상세한 method는 Android Developers 사이트에서 확인할 수 있다.

            mWebView?.apply {
                webViewClient = object : WebViewClient() {
                    override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
                        loadUrl(URL)
                        Log.v("WebView Log", "WebView Log shouldOverrideUrlLoading")
                        return true
                    }

                    override fun onPageStarted(
                        view: WebView?,
                        url: String?,
                        favicon: Bitmap?
                    ) {
                        super.onPageStarted(view, url, favicon)
                        Log.v("WebView Log", "WebView Log onPageStarted")
                    }

                    override fun onPageFinished(view: WebView?, url: String?) {
                        super.onPageFinished(view, url)
                        Log.v("WebView Log", "WebView Log onPageFinished")
                    }

                    @RequiresApi(Build.VERSION_CODES.M)
                    override fun onReceivedError(
                        view: WebView?,
                        request: WebResourceRequest?,
                        error: WebResourceError?
                    ) {
                        super.onReceivedError(view, request, error)
                        Log.v("WebView Log", "WebView Log onReceivedError")
                        Toast.makeText(
                            context,
                            "페이지와 연결이 되지 않습니다. \nError: ${error?.description.toString()}",
                            Toast.LENGTH_LONG
                        ).show()
                        activity?.finish()
                    }
                }
            }?.run {
                loadUrl(URL)
            }

본인은 WebView에서 새로운 Url 접속 체크(shouldOverrideUrlLoading), 로딩 시작(onPageStarted), 로딩 완료(onPageFinished), 에러 사항 체크(onReceivedError) 정도를 체크하였다.

profile
vis ta vie

0개의 댓글