Stoppt das laden im webViewClient

In meinem WebView, ich habe mehrere links im header. Im Offline-Modus, ich darf nicht zulassen, dass die Seite neu laden und halten die Seite so wie Sie ist und dann, informieren Sie die Benutzer über das internet Verbindung. Ich bin in der Lage zu fangen links, bevor es lädt mit shouldOverrideUrlLoading wenn ich auf andere links. Aber wenn ich auf den gleichen link, shouldOverrideUrlLoading ist nicht gefeuert, stattdessen onLoadResource Methode wird zuerst aufgerufen. In dieser Methode habe ich versucht webView.stopLoading(); aber es arbeitet weiter und Feuer onReceivedError Methode und zeigt Fehler Bericht auf der Seite.

Hier ist mein WebClient:

webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if(MyApplication.getInstance().isOnline()) {
                return false;
            }

            Toast.makeText(getApplicationContext(), "Please check Internet connection and try again.", Toast.LENGTH_SHORT).show();
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            Log.i("ON_PAGE_START", "RUNNING ============>" + url);
            if (MyApplication.getInstance().isOnline()) {
                super.onPageStarted(view, url, favicon);
            } else {
                webView.stopLoading();
            }
        }

        @Override
        public void onLoadResource(WebView view, String url) { 

            if (MyApplication.getInstance().isOnline()) {
                super.onLoadResource(view, url);
            } else {
                webView.stopLoading();                  
            }
        }

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {               

            view.stopLoading();

            Toast.makeText(getApplicationContext(), "Please check Internet connection and try again.", Toast.LENGTH_SHORT).show();
            super.onReceivedError(view, errorCode, description, failingUrl);    
        }
    });

Was ich will, ist in der Lage sein, um sicherzustellen, dass die urls nicht gefeuert wird, wenn es offline ist, und informieren darüber.

InformationsquelleAutor boburShox | 2013-03-19
Schreibe einen Kommentar