0

我的代码:-

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);
    // defining the WebView
    WebView myWebView = (WebView) findViewById(R.id.web);
    // Websetting can be used to define several web related settings.
    WebSettings webSettings = myWebView.getSettings();
    // Enabling JAVASCRIPT
    webSettings.setJavaScriptEnabled(true);
    // providing navigational access
    myWebView.setWebViewClient(new WebViewClient());
    // loading the URL
    myWebView.loadUrl("http://abcd.com");
}

它是任何人都会在那里找到的最简单的 webview,我想在那里做一些修改,但我做不到,所以请帮助我。

我打开的网站包含很多图像,现在我想知道,当访问一个网站时,它包含的所有图像和文本都被下载以在 UI 上显示它,当我们关闭页面时,所有的图像都丢失了,如果我猜对了。要下载图像,必须专门下载它。就像我们在 Opera 浏览器或任何其他浏览器中所做的那样。

所以我想将我的 webview 在 UI 中打开的所有图像自动下载到我的 SDCard 上的一个目录(路径已知 /sdcard/pics)中。有办法吗?

4

2 回答 2

1

您可以在 WebView 上启用缓存并将缓存中的所有图像保存到您需要的任何位置。

要启用缓存,请使用以下代码:

webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.getSettings().setAppCacheMaxSize(1024 * 1024 * 8);

您可以在将 Android WebView 缓存保存到 SD 卡中找到有关保存缓存内容的信息

于 2012-06-27T04:46:00.103 回答
1

WebView使用缓存目录方法的另一种方法是在加载图像时即时拦截对图像的所有请求。您可以将 a 设置为实现以下方法之一的WebViewClient您的:WebView

第一种方法应该适用于所有设备,但可能会导致下载资源两次:一次是手动将其保存在 SD 卡上的特定目录中,一次是WebView自行下载。第二种方法允许您在将下载的资源保存在某处后返回,从而有效地只下载一次。

您应该能够在 SO 上或通过查询您最喜欢的搜索引擎找到大量示例。

于 2012-06-27T04:53:16.437 回答