qustodio play parental instalar gratis google descargar control como celular borre authenticator activar android html webview offline-caching android-external-storage

android - play - qustodio gratis



¿Cómo cargar o recuperar una página web en modo en línea y fuera de línea en la aplicación de Android? (6)

Es posible que desee intentar utilizar el método WebViewClient de WebViewClient que se utiliza en su WebView . Le permite conocer todos los recursos que se cargan durante el proceso de carga html. Así que puedes hacer algo como esto:

WebViewClient webViewClient = new WebViewClient() { @TargetApi(VERSION_CODES.LOLLIPOP) @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { WebResourceResponse response = null; if ("GET".equals(request.getMethod())) { try { response = getWebResponse(view.getContext().getApplicationContext(), request.getUrl().toString()); } catch (Exception e) { Log.e(TAG, "Error while overriding getting web response", e); } } return response; } @SuppressWarnings("deprecation") @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { WebResourceResponse response = null; try { response = getWebResponse(view.getContext().getApplicationContext(), url); } catch (Exception e) { Log.e(TAG, "Error while overriding getting web response", e); } return response; } WebResourceResponse getWebResponse(Context context, String url) { // YOUR IMPLEMENTATION that will save resource located at passed url } } webView.setWebViewClient(webViewClient);

Necesito cargar y recuperar una página web HTML en la memoria interna o externa del dispositivo Android. Lo que necesito es descargar y recuperar una página web en Android usando web-view.

Hay muchas preguntas repetidas similares a descargar o guardar la página web. Pero ninguna de las respuestas me ayudó. ¡Guíame!

Gracias por adelantado.


Eso suena como un simple mecanismo de almacenamiento en caché webview para mí.

prueba esto

WebView webView = new WebView( context ); webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB webView.getSettings().setAppCachePath( getApplicationContext().getCacheDir().getAbsolutePath() ); webView.getSettings().setAllowFileAccess( true ); webView.getSettings().setAppCacheEnabled( true ); webView.getSettings().setJavaScriptEnabled( true ); webView.getSettings().setCacheMode( WebSettings.LOAD_DEFAULT ); // load online by default if ( !isNetworkAvailable() ) { // loading offline webView.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK ); }

El método isNetworkAvailable () comprueba una conexión de red activa:

private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE ); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnected(); }

webView.loadUrl (" http://www.google.com ");

Finalmente, no olvide agregar los siguientes tres permisos a su AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>


No sé si esta solución es adecuada para su.si desea ver un sitio web en modo sin conexión y en línea, puede usar un rastreador web para obtener todos los datos del sitio. Here hay un proyecto de ejemplo para web crawler android.after que puede cargar un sitio web desde una URL o una memoria local según su disponibilidad en Internet.


guardar la página web en la memoria caché;

WebView webView = new WebView( context ); webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB webView.getSettings().setAppCachePath( getApplicationContext().getCacheDir().getAbsolutePath() ); webView.getSettings().setAllowFileAccess( true ); webView.getSettings().setAppCacheEnabled( true ); webView.getSettings().setJavaScriptEnabled( true ); webView.getSettings().setCacheMode( WebSettings.LOAD_DEFAULT ); // load online by default

Marque este enlace WebView cargue el sitio web cuando esté en línea, cargue el archivo local cuando esté fuera de línea



Un WebView puede cargar y representar páginas html remote y local además de que también admite ''data'' scheme URL .

Opciones de almacenamiento

Preferencias compartidas (no es útil en tu caso)

Almacena datos primitivos privados en pares clave-valor.

Almacenamiento interno (recomendado para su caso)

Almacena datos privados en la memoria del dispositivo.

Almacenamiento externo ( puede usar en su caso pero no recomendado)

Almacena datos públicos en el almacenamiento externo compartido.

Bases de datos SQLite (Puede usar en su caso pero no recomendado)

Almacenar datos estructurados en una base de datos privada.

Conexión de red ( puede usar en su caso pero no funcionará en modo fuera de línea)

Almacene datos en la web con su propio servidor de red.