Webview 中的缓存在 Android 中不起作用

Caching in Webview is not working in Android

当我打开 webview 时,有网络连接时它运行良好,但我在其中启用了缓存,没有网络连接时,它显示错误并且加载的缓存网页不显示。

我启用了缓存并设置了缓存模式,但它不起作用。

我的webview代码如下:

public class SettingsFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.settings, container, false);
        WebView heroespage = (WebView) rootView.findViewById(R.id.webView1);
        WebSettings webSettings = heroespage.getSettings();
        webSettings.setAppCacheEnabled(true);
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        webSettings.setJavaScriptEnabled(false);
        heroespage.setWebViewClient(new WebViewClientSubClass());
        heroespage.loadUrl("https://docs.google.com/spreadsheets/d/1E0FyHR_lCQce0NPnQL8z1XJp78XW6eLdO8CkeibTdgg/gviz/tq?tqx=out:html&tq&gid=2");
        return rootView;
    }
}

您无法像这样从 docs.google.com 中缓存文档。

服务器可以发送cache-control header作为对任何请求的响应,为客户端设置有关缓存的规则。 由于来自 docs.google.com 的这些文档从来都不是静态的,因此响应包含不缓存文档的说明。

cache-control:no-cache, no-store, max-age=0, must-revalidate

Android WebView 接受这些规则并且不缓存您的站点。