webview加载一个网页,这个网页会链接到另一个网页,这两个网页顶部都有h5写的返回图标,点击返回之前是这样的:
@JavascriptInterface
public void goBack() {
finish();
}
调用这里直接finish掉,这样的问题是当你的webview打开的第一个页面链接了另一个页面的时候会直接关闭两个页面,显然不是我们要的效果。
所以后面我改了下:
@JavascriptInterface
public void goBack() {
if(webview.cangoback){
webview.goback();
}else{
finish();
}
}
但这样的结果是连接到地2个之后再点顶部的返回无法销毁当前activity。
最后改成这样:
@JavascriptInterface
public void goBack() {
finish();
}
···
@Override
public boolean shouldOverrideUrlLoading(com.tencent.smtt.sdk.WebView webView, String s) {
if (!s.startsWith("http") & !s.startsWith("https") & s.startsWith("file")) {
return false;
} else {
webView.loadUrl(s);
return true;
}
}
···
@Override
public void onBackPressed() {
if (webView.canGoBack())
webView.goBack();
else
finish();
}
...