我有一个从 Internet 加载 URL 的 webview,但是当没有连接(onReceiedError)时,它会在 assets 文件夹中加载本地保存的 html 文档。
但是当我在该特定活动(加载本地 HTML)上按下后退按钮时,它不会返回到上一个活动,而是尝试刷新页面。只有在 4-5 Back 按下后它才会返回。
这是我的代码。
private class HelloWebViewClient extends WebViewClient{
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
mWebView.getSettings().setBuiltInZoomControls(false);
mWebView.getSettings().setLoadWithOverviewMode(false);
mWebView.getSettings().setUseWideViewPort(false);
mWebView.loadUrl("file:///android_asset/offline.html");
}
public boolean shouldOverrideUrlLoading(WebView webview, String url)
{
webview.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int KeyCode, KeyEvent event)
{
if ((KeyCode)== KeyEvent.KEYCODE_BACK && mWebView.canGoBack())
{
mWebView.goBack();
return true;
}
return super.onKeyDown(KeyCode, event);
}
@Override
public void onBackPressed()
{
this.finish();
overridePendingTransition (0, R.anim.right_slide_out);
return;
}
}
适用于从 Internet 加载的普通网页。