在webview中缓存

时间:2011-07-17 00:40:08

标签: java android webview

我正在尝试WebView类并有一些问题=)也许你可以帮助我 我注意到,如果您在webview中为单个图像收费,则webview会将其调整为屏幕宽度,但使用多点触控可以使其缩小。 有什么方法可以在用户试图缩小时忽略它吗? 我可以知道页面何时完成加载? 最后,如何保存完整的网页,以便在离线模式下向用户显示?

提前非常感谢:D

1 个答案:

答案 0 :(得分:2)

  

当用户试图缩小时,有没有办法忽略?

查看WebSettings.setSupportZoom()

  

我可以知道页面何时完成加载?

将自定义WebChromeClient配置为进度侦听器,如下所示:

webview.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int progress)
    {
        if (progress == 100)
        {
                // do something
        }
    }
});
  

如何保存完整网页,以便在离线模式下向用户展示?

嗯,我也想知道,但我认为不可能。现在我正在设置一个积极的缓存模式(WebSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK)),如果我的URL无法从缓存中加载,我从资源加载一个本地可用的缓存模式:

final String urlToLoad = "http://www.my-url.com"; 
webview.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl)
    {
        if (urlToLoad.equals(failingUrl))
        {
            view.loadUrl("file:///android_res/raw/local_copy.html");
            return;
        }
        super.onReceivedError(view, errorCode, description, failingUrl);
    }
});
webview.loadUrl(urlToLoad);