• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

webView.canGoBack()不能工作

Android 来源:Pravesh Agrawal 3次浏览

最近我所有的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; 
    } 
} 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)