我正在加载shouldOverrideUrlLoading
方法中的所有页面(主要是跟踪当前页面url并进行一些修改)。
我的问题是后退按钮(例如:webview
方法)绕过了上述功能。
是否有任何方法可以显式调用webview.goback()
和goback()
方法。
public boolean shouldOverrideUrlLoading(WebView view, String url){
//get current url and do some modifications to html}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && web1.canGoBack()) {
webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
最佳答案
查看您的代码似乎是,一旦基于特定url操作的某些逻辑调用了shouldOverrideUrlLoading
方法,您就需要Webview
返回方法。我建议您在活动中使用以下方法:
@Override
public void onBackPressed() {
if ((keyCode == KeyEvent.KEYCODE_BACK) && web1.canGoBack()) {
webview.goBack();
} else {
super.onBackPressed();
}
}
它的功能与onkeypressed完全相同。(使用
onBackPressed
而不是onKeypressed
,但在activity类中编写此代码,而不是在customWebViewClient
中。调用
onBackPressed()
中的shouldOverrideUrlLoading
。试试这个,应该管用。