我的场景是,一开始我加载一个WebView,然后我用不同的WebView加载相同的URL。
我的问题是,每当我加载下一个URL时,我都可以看到之前加载的URL内容,然后我当前加载的URL内容就会显示出来。
每当我加载不同的URL时,我都想清除内容。
说,
if (pos == 0) {
mweb.clearCache(true);
mweb.clearHistory();
mweb.loadUrl("http://stackoverflow.com/");
}
else if (pos == 1) {
mweb.clearCache(true);
mweb.clearHistory();
mweb.loadUrl("http://android.stackexchange.com/");
}
clearCache()
和clearHistory()
都不适用于我。
发布于 2015-08-06 16:27:35
我通常在加载新的url之前隐藏webview,然后在加载进度稍有进展时再显示它。
// url loading
mWebView.setVisibility(View.INVISIBLE);
mWebView.loadUrl(newUrl);
// show webview again
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int progress) {
if (progress >= 10) {
mWebView.setVisibility(View.VISIBLE);
}
}
}
发布于 2018-02-16 22:40:13
我想你可以使用Webview.clearHistory()
。但请记住,在加载WebView之后调用它是如此无能为力。例如代码:
webView.loadData(someUrl);
webView.clearHistory();
无法工作,因为未加载webView。我们必须像这样清理它:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
clearHistory();
}
}
发布于 2014-08-23 01:42:28
Thnx to StefanK comment found Here,您需要在页面完成加载时使用clearHistory()
方法,WebViewClient
onPageFinished(WebView view, String url)
方法也在onLoadResource(WebView view, String url)
方法中;如下所示:
myCoolWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
@Override
public void onLoadResource(WebView view, String url) {
// Notice Here.
view.clearHistory();
super.onLoadResource(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
// And Here.
view.clearHistory();
super.onPageFinished(view,url);
}
});
您还可以检查canGoBack()
和copyBackForwardList()
中的操作。
https://stackoverflow.com/questions/8939530
复制相似问题