sábado, 12 de abril de 2014

Android: URI y WebView


¡Hola de nuevo! En este tutorial hablaré sobre cómo podemos utilizar el elemento Uri de Android para iniciar nuestro navegador con una URL que previamente le especifiquemos.

Después de eso veremos cómo podemos hacer lo mismo, pero desde un WebView; es decir, navegar desde nuestra propia app en vez de utilizar los navegadores que tengamos instalados en nuestro dispositivo.



Antes de nada nos hará falta indicar el siguiente permiso en nuestro fichero Manifest:
<uses-permission android:name="android.permission.INTERNET" />

Se trata ni más ni menos que del permiso necesario para acceder a Internet.

1. Uri

Es bastante simple y fácil de usar. Tanto que podemos resumirlo todo en un par de líneas:

String dir_url = .... // dirección URL
Uri uri = Uri.parse(dir_url); // creamos un objeto Uri y le parseamos el string de la URL
// creamos un intent con la Uri anterior y lo lanzamos
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(intent);

Y eso es todo con respecto al elemento Uri.


2. WebView

El WebView no es más difícil de utilizar que el Uri, pero requiere de un poco más de preparación.

Primero: crearemos o reconoceremos nuestro webview. En este tutorial lo que yo hago es crear el webview vía código, pero también podría hacerse poniendo un WebView en nuestro layout y reconociéndolo con "findViewById(...)".

WebView web = new WebView(this);


Segundo: prepararemos a la activity con todo lo necesario para poder ejecutar nuestro WebView y poder navegar en él.

getWindow().requestFeature(Window.FEATURE_PROGRESS);
web.getSettings().setJavaScriptEnabled(true); // habilita los script de Javascript
web.getSettings().setBuiltInZoomControls(true); // habilita el zoom

final Activity activity = this;

web.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(WebView view, int progress){
activity.setProgress(progress * 1000);
}
});

web.setWebViewClient(new WebViewClient() {
   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
     Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
   }
});


Tercero: si hemos escogido la opción de crear nuestro WebView vía código tendremos que ejecutar el siguiente comando:

setContentView(web);

De haber escogido la opción de crear el WebView a través del layout, haremos como siempre hemos hecho a la hora de asignar un layout a una activity:

setContentView(R.layout. ... );


Cuarto: y por último ya solo nos queda indicarle a nuestro WebView la url que tiene que cargar. En nuestro caso, le indicaremos que cargue la página de Google.

web.loadUrl("https://www.google.com/");


Y así es como funciona el WebView.


Espero que os haya parecido interesante y que probéis a hacer algo con alguno de estos 2 elementos.

¡Nos vemos!

No hay comentarios:

Publicar un comentario