Jac*_*lva 22 android android-webview
我的场景最初是我正在加载WebView,后来我正在使用不同的URL加载相同的WebView.
我的问题是每当我加载下一个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/");
}
Run Code Online (Sandbox Code Playgroud)
双方clearCache()并clearHistory()没有为我工作.
a f*_*yer 46
mweb.clearView();在加载新URL之前使用.
编辑:
clearView()在API级别18中已弃用.WebView.loadUrl("about:blank")用于可靠地重置视图状态和释放页面资源(包括任何正在运行的JavaScript).
解决@Liang提出的问题:
要获得一致的后退导航,您可以覆盖"onPageFinished",并在其中检查URL是否包含"about:blank".如果是,请使用"webview.goBack()"
我通常在加载新的 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我想你可以使用Webview.clearHistory(). 但请记住,WebView 加载后无法调用此函数。例如代码:
webView.loadData(someUrl);
webView.clearHistory();
Run Code Online (Sandbox Code Playgroud)
不会工作,因为 webView 未加载。我们必须像这样清除它:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
clearHistory();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28842 次 |
| 最近记录: |