我的佈局中有一個webview。默認情況下,將在其中打開搜索表單。在搜索時,搜索表單下方會顯示一個列表部分。如果點擊列表中的任何鏈接,則打開詳細信息頁面。現在我想控制webview的後退導航。我將這段代碼放在Activity中。Android 4.4在WebView中給onReceivedError返回ERR_CACHE_MISS錯誤返回
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d("TYPE", TYPE);
WebView myWebView = null;
if (TYPE.equalsIgnoreCase("REPORT_ACTIVITY"))
myWebView = reportView;
if (TYPE.equalsIgnoreCase("FEEDBACK_ACTIVITY"))
myWebView = feedbackView;
if (myWebView != null)
// Check if the key event was the Back button and if there's history
if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
// If it wasn't the Back key or there's no web page history, bubble up
// to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event);
}
private WebViewClient webViewClient = new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.d("onPageStarted", "onPageStarted");
loadProgressBarBox.setVisibility(View.VISIBLE);
//view.setVisibility(View.GONE);
}
public void onPageFinished(WebView view, String url) {
Log.d("onPageFinished", "onPageFinished");
loadProgressBarBox.setVisibility(View.GONE);
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Log.d("Error", "Error code: " + errorCode + "/" + description);
}
}
我也用WebView設置了WebViewClient。當我回去使用後退按鈕時,它對於任何4.4版本都可以正常工作。但是,當我在Android 4.4中嘗試時,它會從細節頁面恢復到列表頁面。但只要我想再次回來,它的描述中的錯誤代碼爲-1和ERR_CACHE_MISS。沒有頁面顯示。
09-04 06:59:05.666: D/Error(1102): Error code: -1/net::ERR_CACHE_MISS
如何在Android 4.4中解決這個問題?
這對我很好用 – craigrs84 2015-04-01 18:18:21
我結束了使用LOAD_NO_CACHE而不是LOAD_CACHE_ELSE_NETWORK。同樣的概念,但LOAD_CACHE_ELSE_NETWORK表示它使用緩存的資源,即使它們已過期,這對我來說聽起來不太合適。 – craigrs84 2015-04-01 18:41:07