Mostrar una web en nuestra aplicación y su barra de progreso

Para mostrar una página web en nuestra aplicación usaremos un elemento Webview. Una vez lo tengamos en la actividad y sepamos su ID, webView en mi caso, nos vamos a su clase asociada y dentro de onCreate escribimos:

 

// Trabajamos con WebView
String URL = "http://developer.android.com";
WebView webview;
webview = (WebView)findViewById(R.id.webView);
webview.loadUrl(URL);

Con éste código abriremos con una pestaña nueva del navegador la URL que le indiquemos al pulsar el espacio asignado al elemento Webview.

Si queremos que abra una web dentro de su espacio asociado tendremos que escribir:

 

// Trabajamos con WebView
String URL = "http://developer.android.com";
WebView webview;
webview = (WebView)findViewById(R.id.webView);
// Para que sólo se vea en el webview
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}});
webview.loadUrl(URL);

 

También podremos ajustar algunas opciones, como la del zoom o permitir que se ejecute JavaScript:

// Permitimos que se ejecute JavaScript
webview.getSettings().setJavaScriptEnabled(true);
// Ajustamos la vista para que no se vea demasiado grande
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setUseWideViewPort(true);
// habilitamos el zoom
webview.getSettings().setBuiltInZoomControls(true);

(antes de webview.loadUrl(URL))

 

Añadir la barra de proceso en la carga de la web

Con nuestra barra de proceso en la actividad junto al Webview mostrará el proceso de carga de éste y desaparecerá una vez cargado.

Primero declaramos el elemento “private ProgressBar progressBar;” dentro de nuestra clase pero fuera de la función onCreate.

Después, dentro de onCreate y sabiendo que tiene el ID progressBar:

 

// Para la barra de proceso
progressBar = (ProgressBar) findViewById(R.id.progressBar);
webview.setWebChromeClient(new WebChromeClient()
{
@Override
public void onProgressChanged(WebView view, int progress)
{
progressBar.setProgress(0);
progressBar.setVisibility(View.VISIBLE);
vista.this.setProgress(progress * 1000);
progressBar.incrementProgressBy(progress);
if(progress == 100)
{
progressBar.setVisibility(View.GONE);
}
}
});

Anuncios

3 comentarios en “Mostrar una web en nuestra aplicación y su barra de progreso

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s