Я разрабатываю веб-приложение, и я также буду использовать приложение WebView в Android. Я хочу кэшировать некоторый набор страниц, чтобы предоставить моим пользователям автономный доступ. Прямо сейчас кэшируются только те страницы, которые я посещаю один раз, но я хочу предварительно кэшировать набор страниц, чтобы пользователи могли работать в автономном режиме.
Код, который я сейчас использую:
private WebView webView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.webView = (WebView)
findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
WebSettings webSettings = webView.getSettings();
String appCachePath;
appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
// Enable responsive layout
webSettings.setUseWideViewPort(true);
// Zoom out if the content width is greater than the width of the viewport
webSettings.setLoadWithOverviewMode(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAppCachePath(appCachePath);
webSettings.setAppCacheEnabled(true);
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Activity.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo() == null || !cm.getActiveNetworkInfo().isConnected())
{
Log.i("B","INSIDE NO NETWORK");
appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
webSettings.setAppCachePath(appCachePath);
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ONLY);
webView.loadUrl("https://www.example.com");
}
else
{
Log.i("A","INSIDE YES NETWORK");
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webView.loadUrl("https://www.example.com");
}
}