我正在shouldOverrideUrlLoading
上的webview
方法中加载我的所有页面(主要是为了跟踪当前页面网址并进行一些修改)。
我的问题是后退按钮(例如:webview.goback()
方法)绕过了上述功能。
有什么方法可以明确地同时调用goback()
和shouldOverrideUrlLoading()
方法。
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);
}
答案 0 :(得分:1)
查看代码似乎一旦根据特定URL操作的某些逻辑调用shouldOverrideUrlLoading
方法,您需要Webview
返回方法。我建议你在活动中使用以下方法:
@Override
public void onBackPressed() {
if ((keyCode == KeyEvent.KEYCODE_BACK) && web1.canGoBack()) {
webview.goBack();
} else {
super.onBackPressed();
}
}
与onKeypressed完全相同。 (使用onBackPressed
代替onKeypressed
,但是在Activity类中编写此代码,但不在自定义WebViewClient
内。
致电onBackPressed()
内的shouldOverrideUrlLoading
。试试这个,应该有用。