清除WebView内容

pet*_*awn 49 android

我的应用程序中有一个带有wrap_content宽度和高度的WebView

在我使用webview.loadData之前,它的宽度和高度为0,

加载网址后(或者我使用webview.loadData),它会显示一个网页.

我的问题是,我如何清除webview以将其恢复到原始状态,就像

在它之前loadData ??

Gra*_*hew 70

我发现这个答案非常有用:如何在加载页面之前清除WebView的内容?

是可可,但基本上只是打电话:

webView.loadUrl("about:blank")
Run Code Online (Sandbox Code Playgroud)

  • 但是,通过使用这种方法,这似乎有行为,你需要按两次后退按钮(我认为额外的是空白页),以便导航webview以前的内容.有一个讨论http://stackoverflow.com/a/8939753/72437,但我发现它不适合我. (2认同)

san*_*one 48

唯一完整的解决方案是检查SDK版本.

if (Build.VERSION.SDK_INT < 18) {
   webView.clearView();
} else {
   webView.loadUrl("about:blank");
}
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案帮助我通过“webView.destroyDrawingCache();”现在在所有版本上都能正常工作。在不破坏绘图缓存的情况下,旧内容会在 4.4.+ android 上闪烁 (2认同)
  • 不推荐使用WebView.clearView(),而是使用loadUrl('about:blank")来源:http://developer.android.com/reference/android/webkit/WebView.html#clearView%28%29 (2认同)
  • 正如@HugoGresse 建议的那样,对所有 SDK 版本使用 `webView.loadUrl("about:blank")`。如果 Javascript 正在运行,`webView.clearView()` 通常无法正常工作,即使在 SDK 版本 &lt; 18 中也是如此。 (2认同)

小智 6

在loadData之前使用以下语句:

view.loadUrl("javascript:document.open();document.close();");
Run Code Online (Sandbox Code Playgroud)


小智 5

WebView.clearView();

这将清除webview中的视图.

  • 警告:已弃用.使用WebView.loadUrl("about:blank")可靠地重置视图状态并释放页面资源(包括任何正在运行的JavaScript). (4认同)

Ada*_*dam 1

我使用了clearView()方法,但是我现在遇到了问题,当我在它之后立即loadData()时,它似乎没有加载数据。