Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android webView.canGoBack()不再工作_Android_Webview_Onbackpressed - Fatal编程技术网

Android webView.canGoBack()不再工作

Android webView.canGoBack()不再工作,android,webview,onbackpressed,Android,Webview,Onbackpressed,最近,所有基于我的WebView的应用程序开始出现后退按钮问题。它看起来与一些Android组件的更新问题,请帮助解决这个问题或一些替代解决方案 webView.canGoBack()始终返回false 注:前几天所有的应用程序都运行良好 我是这样使用它的: @Override public void onBackPressed() { if (webView.canGoBack()) { webView.goBack();

最近,所有基于我的
WebView
的应用程序开始出现后退按钮问题。它看起来与一些Android组件的更新问题,请帮助解决这个问题或一些替代解决方案

webView.canGoBack()
始终返回false

注:前几天所有的应用程序都运行良好

我是这样使用它的:

   @Override
    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }

用这样的方式创建自己的canGoBack

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;
    }
}
ArrayList URL=new ArrayList();
url.add(www.google.com);
//之后,您需要重写此方法
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
view.loadUrl(url);
Log.d(标记“shouldOverrideUrlLoading:+url”);
添加(url);
返回true;
}
@凌驾
public void onPageStarted(WebView视图、字符串url、位图favicon)
{
super.onPageStarted(视图、url、favicon);
pDialog.show();
}
@凌驾
公共void onPageFinished(WebView视图,最终字符串url){
pDialog.disclose();
}
});
//对于onBackPressed,与自定义按钮中的back click选项相同
@凌驾
public void onBackPressed(){
如果(!canGoBack()
{
super.onBackPressed();
}
}
//自定义方法
公共布尔canGoBack()
{
if(url.size()==1)//主页
{
返回false;
}
其他的
{
webView.loadUrl(url.get(url.size()-2));//加载上一个url
url.remove(url.size()-1);//删除上次加载的url
返回true;
}
}

我也注意到了这一点。请检查并确认。没错,希望他们能在更新中尽快修复。