Tengo una aplicación que carga las direcciones url de un sitio web. Ahora quiero que la aplicación para utilizar la caché cuando se trabaja sin conexión. Pero acabo de llegar de la página de error que dice que no estoy conectada a la web. Al principio me puse la Cachemode a Load_Normal pero esto no ayuda. A continuación he intentado realmente «tonto» enfoque utilizando el 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);
}

pero esto sólo conduce a un colapso de la aplicación.

Hay un modo sencillo de cargar la caché cuando se trabaja sin conexión y existentes y sólo si no existentes, mostrando el mensaje de error.

OriginalEl autor onkelv | 2010-09-24

2 Comentarios

  1. 15

    ACEPTAR. El código está bien arriba. El permiso que se necesita para agregar son:

    .INTERNET

    .ACCESS_NETWORK_STATE

    .ACCESS_WIFI_STATE

    OriginalEl autor Rick

  2. 9

    Además de los permisos

    .INTERNET

    .ACCESS_NETWORK_STATE

    .ACCESS_WIFI_STATE

    mencionado en otra respuesta, yo también necesarios los siguientes cambios en el código:

    if(cm != null && cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected()){
        webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
    }
    else{
        webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    }

    De lo contrario, la aplicación se bloquee cuando se trata de obtener la información de red en el primer arranque, si no estuviera conectado a WiFi o Red Móvil.

    OriginalEl autor jake_hetfield

Dejar respuesta

Please enter your comment!
Please enter your name here