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;
}