2015-05-14 29 views
0

最近我爲我的Android webview應用程序添加了一個本地錯誤頁面。因此,當某個網頁無法正常加載時,它會顯示該本地html文件。當按下按鈕時忽略某個網頁

webView.setWebViewClient(new WebViewClient() {  

     //On error, open local file 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      webView.loadUrl("file:///android_asset/www/myerrorpage.html"); 

     } 

}); 

我當返回按鈕被按下代碼:

private Boolean exit = false; 
private long timeStamp = 0; 
private Handler handler = new Handler(); 
@Override 
// Detect when the back button is pressed 
public void onBackPressed() { 
    if(webView.canGoBack()) { 
     webView.goBack(); 
    } 
    else { 
     if (exit) { 
      exit = false; //added 
      this.finish(); 
     } 
     else { 

      //added: 
      if (timeStamp == 0 || (System.currentTimeMillis() - timeStamp) > 3000) { 
       Toast.makeText(this, "Press again to close.", 
        Toast.LENGTH_SHORT).show(); 
       exit = true; 

       timeStamp = System.currentTimeMillis(); //added 

       handler.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         exit = false; 
        } 
       }, 3 * 1000); 
      } 
     } 

    } 
} 

具體問題:

當我按下後退按鈕,但我以前的頁面「文件:/// android_asset /www/myerrorpage.html「,它應該忽略該錯誤頁面並立即返回正確加載的最後一個網頁。我怎樣才能做到這一點?

回答

0
@Override 
    public void onBackPressed() { 
     if (wvContactUs.canGoBack()) { 
      wvContactUs.goBack(); 
     } else { 
      super.onBackPressed(); 
     } 
    } 



webView.setWebViewClient(new WebViewClient() {  

     //On error, open local file 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      webView.loadUrl("file:///android_asset/www/myerrorpage.html"); 
       onBackPressed(); 
     } 

});