2012-11-06 39 views
3

我們假設一個url已經被加載(我們稱之爲原始url)。Android webview onReceivedError顯示自定義錯誤頁面並重新載入以前的url onResume

webView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     webView.loadUrl("file:///android_asset/missing.html"); 
    } 
}); 

我已經創建了自己的錯誤頁面以防止出現「網頁不可用消息」。 應用程序每次恢復時都必須重新加載webview。所以,我有下面的代碼行:

@Override 
protected void onResume() { 
    super.onResume(); 
    webView.reload(); 
} 

這裏的問題是,當錯誤頁面加載(例如,當用戶沒有連接到互聯網),然後連接可用一次的用戶恢復應用程序,原始URL不加載(這似乎是邏輯,目前現在是missing.html)。但這是一個很好的方法嗎?對這個問題有什麼建議嗎?

如果用戶想重新加載內容,還有一個刷新按鈕。這裏同樣的問題。

+0

您可能想要接受對某些老年人有用的答案問題。這會讓人們更傾向於回答你的新問題。 – kabuko

回答

0

我檢查的onResume()互聯網連接像http://developer.android.com/training/basics/network-ops/managing.html

public static boolean isOnline() { 
    ConnectivityManager connMgr = (ConnectivityManager) App.instans.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 
    return (networkInfo != null && networkInfo.isConnected()); 
} 

public void onResume() { 
3

建議您應該加載想要的網址,而不是使用webView.reload(),像這樣:

webView.loadUrl("http://yoururl"); 

或回到上一頁:

webView.loadUrl("javascript:history.go(-1)"); 
相關問題