android - how to prevent webview to load when no internet connection

前端 未结 5 2090
猫巷女王i
猫巷女王i 2020-12-02 18:45

I have an Android app which has a webview. When there\'s no internet connection, webview will display page not available. I want to make this look like an app as much as pos

5条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-02 19:28

            webView.setWebViewClient(new WebViewClient() {
            int errorCode = 0;
            @SuppressWarnings("deprecation")
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return handleUri(view, url);
            }
    
            @TargetApi(Build.VERSION_CODES.N)
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                return handleUri(view, request.getUrl().toString());
            }
    
            private boolean handleUri(WebView view, final String url) {
                view.loadUrl(url);
                return true;
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                if(errorCode == 0) {
                   //CHECK IS PAGE I NEED AND DO STUFF
                } else {
                   errorCode = 0;
                   //delay and try again
                }
            }
    
            @SuppressWarnings("deprecation")
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                handleError(errorCode);
            }
    
            @TargetApi(Build.VERSION_CODES.N)
            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                handleError(error.getErrorCode());
            }
    
            private void handleError(int errorCode) {
                this.errorCode = errorCode;
            }
        });
    

提交回复
热议问题