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 接受这些规则并且不缓存您的站点。
当我打开 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 接受这些规则并且不缓存您的站点。