Carga de una página web dentro de un webview

=Carga de una página web dentro de un webview= Muchas veces necesitamos recursos que ya están en la Web, y para no volver a escribirlos, hacemos referencia a ellos por medio de un WebView. Un ejemplo es esta Wiki, que es referenciada como pagina de ayuda/manual de la aplicacion.

Requisitorios
Para trabajar con la Internet, cargando los contenidos y/o paginas a nuestros activitys es necesario tener permisos, que son necesarios descritos en el AndroidManifest de nuestra aplicación. Es por es que es necesario escribir la siguiente linea en el Manifest.



Implementación
Para poder usar y cargar datos dentro del WebView necesitamos crear el elemento y luego referenciarlo.

WebView en el Layout
Esto es simplemente declarar el elemento dentro del .xml del layout que queramos tener la vista Web.

 

Utilidad en el codigo Java
En las siguentes lineas de codigo declaramos, referenciamos y configuramos el WebView que anteriormente teníamos.

WebView webView = (WebView) this.findViewById(R.id.webview); webView.setWebViewClient(new MyWebViewClient(this)); webView.getSettings.setJavaScriptEnabled(true); webView.loadUrl(getString(R.string.urlWiki));

WebViewClient
Es la clase que se encargar de manejar el WebView, que podriamos dejar que sea un Browser conocido, pero podriamos tambien querer tener uno propio, como es nuestro caso, que no sea necesario abrir la pagina en un navegador y se tenga que ejecutar o abrir la pagina en otro lugar. Es nuestro caso nuestro WebViewClient se llama MyWebViewClient.class que abre la pagina especificada en la urlWiki, que hace referencia a esta Wiki.

Ahora dejamos el codigo de nuestra clase que extiende la clase WebViewClient.class private class MyWebViewClient extends WebViewClient { private final Activity activity; private ProgressDialog progressDialog;// TODO: ProgresDialog change to ProgressBar

private MyWebViewClient(Activity activity) { this.activity = activity; }

@Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.d(LOG_TAG, String.format("Loading %s", url)); if (progressDialog == null) { // in standard case YourActivity.this progressDialog = new ProgressDialog(HomeActivity.this); progressDialog.setMessage(getString(R.string.loading_web_page)); progressDialog.show; Log.d(LOG_TAG, String.format("Showing for %s", url)); }       }

public void onPageFinished(WebView view, String url) { showFinalResults; }

private void showFinalResults { try { if (progressDialog != null && progressDialog.isShowing) { progressDialog.dismiss; progressDialog = null; }           } catch (Exception exception) { RemoteLogger.e(LOG_TAG,getString(R.string.errorLoadingPage)); }       }

@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return true; }

}