webView.canGoBack()不能工作
问题描述:
最近我所有的WebView
基于应用程序开始有后退按钮的问题。它看起来与更新一些Android组件的问题,请帮助解决这个问题或一些替代解决方案?webView.canGoBack()不能工作
webView.canGoBack()
总是返回false。
PS:所有应用程序在前几天都正常工作。
我使用的是这样的:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
答
通过这样的创建自己的canGoBack ....
Initally you need add the home page..
ArrayList<String> urls = new ArrayList<>();
urls.add(www.google.com);
//after that you need override this method
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
Log.d(TAG, "shouldOverrideUrlLoading: "+url);
urls.add(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
pDialog.show();
}
@Override
public void onPageFinished(WebView view, final String url) {
pDialog.dismiss();
}
});
//for onBackPressed, same like in custom button for back click option
@Override
public void onBackPressed() {
if(!canGoBack()
{
super.onBackPressed();
}
}
//Custome Method
public boolean canGoBack()
{
if(urls.size() == 1) // home page
{
return false;
}
else
{
webView.loadUrl(urls.get(urls.size()-2)); // load previous url
urls.remove(urls.size()-1); // remove last loaded url
return true;
}
}
我也注意到这一点。查看[Chromium BUG 794020](https://bugs.chromium.org/p/chromium/issues/detail?id=794020)以及[stackoverflow question 47771494](https://stackoverflow.com/questions/47771494) 。 – hQuse
确切地说,希望他们能够在更新中尽快修复它。 –