如果存在以前的页面,我会尝试按回键时返回。我还使用自定义错误Html页面。但我发现使用goback将加载以前的错误html,我该怎么办?谢谢
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
requestLink = failingUrl;
try {
mWebView.stopLoading();
} catch (Exception e) {
Log.e(FLAG, e.toString());
}
try {
mWebView.clearView();
} catch (Exception e) {
Log.e(FLAG, e.toString());
}
mWebView.loadUrl("file:///android_asset/net_err.html");
mWebView.invalidate();
}
以及用于goback的代码
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
if (mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
和要刷新的代码,由js在错误html中调用。
@JavascriptInterface
public void refreshPage(){
mWebView.post(new Runnable() {
@Override
public void run() {
mWebView.loadUrl(requestLink);
}
});
}
答案 0 :(得分:0)
试试这个
@覆盖
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK) {
if (mWebView.canGoBack()) {
mWebView.goBack();
if (mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}