I have an application which loads urls from a website. Now I want that the application to use the cache when offline. But I just get the failure page which says that im not connected to the website. At first I set the Cachemode to Load_Normal but this doesn't help. Next I tried a realy "silly" approach using the ConnectivityManager:
cm = (ConnectivityManager) this.getSystemService(Activity.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo().isConnected()){
mfnWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
mfnWebView.loadUrl(url);
}
else{
mfnWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
mfnWebView.loadUrl(url);
}
but this just leads to crashing the application.
Is there a simple way to load the cache when offline and existing and just if not existing showing the failure message.
OK. The code is fine above. The permission needed to be added are:
.INTERNET
.ACCESS_NETWORK_STATE
.ACCESS_WIFI_STATE
In addition to the permissions
.INTERNET
.ACCESS_NETWORK_STATE
.ACCESS_WIFI_STATE
mentioned in another answer, I also needed the following changes to the code:
Otherwise the app would crash when trying to get the network info on first startup, if I were not connected to either WiFi or Mobile Network.