Android开发页面重定向导致WebvView.canGoBack一直返回true的解决方法
-
原因:打开页面A的时候重定向到页面B,页面B回退的时候回退到页面A,但是接着又重定向到页面B,所以canGoBack一直返回true,导致一直无法退出。
-
解决方法:
webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //返回true表示取消加载,false表示让系统帮我们加载 //不要返回true然后自己调用webview.loadUrl(url),这样会导致重定向的页面canGoBack有问题 return !canOpenWithWebView(url); } }); private boolean canOpenWithWebView(String url) {//处理判断url的合法性 if (url != null) { if (url.startsWith("http:") || url.startsWith("https:")) { return true; } } return false; }