我有一个从互联网加载URL的webview,但是当没有连接(onReceiedError)时,它会在assets文件夹中加载一个本地保存的html文档。
但是当我按下该特定活动的后退按钮(加载本地HTML)时,它不会返回上一个活动而是尝试刷新页面..只有在4-5后按下它才会回来。
这是我的代码。
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;
}
}
正常网页可以正常上网加载。
答案 0 :(得分:0)
因为onReceivedError你改变了网址。所以不会有goback事件
您必须只显示Toast消息并删除mWebView.loadUrl("file:///android_asset/offline.html");