Home > Guide e tutorial per Android > Guida programmazione Android – Lezione 11: WebView

Guida programmazione Android – Lezione 11: WebView

Lezione11

Lezione11Vedremo oggi come integrare una pagina web nella nostra applicazione tramite WebView, e come gestire applicazioni che necessitano dell’accesso alla rete.

Creiamo un nuovo Android Application Project e chiamiamolo AndroidBlogApp. Inseriamo come icona della nostra applicazione il logo di AndroidBlogItalia, e completiamo la creazione.

AndroidBlog Logo

Avremo ora bisogno di una particolare View che ci consenta di visualizzare la nostra pagina web. A tale scopo l’SDK Android ci mette a disposizione la classe WebView: inseriamone quindi una nel nostro layout usando l’editor testuale di Eclipse. Il file activity_main.xml apparirà quindi così:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <WebView 
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
	/>
</RelativeLayout>

Ora che abbiamo impostato il layout apriamo il file MainActivity.java. Per prima cosa, poiché senza connessione ad internet l’applicazione non funzionerà correttamente, testiamone la presenza sul dispositivo. Per fare questo usiamo questi 2 metodi:

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
boolean connessioneDisponibile= cm.getActiveNetworkInfo().isConnectedOrConnecting();

se è presente una connessione quindi carichiamo la pagina, altrimenti lanciamo un toast per segnalare la mancanza di rete. Il codice sarà quindi:

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		 ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		 boolean connessioneDisponibile=false;
		 if(cm!=null && cm.getActiveNetworkInfo()!=null){
			 //controllo disponibilità di rete
			 connessioneDisponibile= cm.getActiveNetworkInfo().isConnectedOrConnecting();
	    	 }    		 
	     if(connessioneDisponibile){
	    	 //carichiamo la pagina web
	    	 WebView myWebView = (WebView) findViewById(R.id.webview);
	    	 myWebView.loadUrl("http://www.androidblog.it/");
	     }
	     else{
	    	 Toast t=new Toast(MainActivity.this);
	    	 t.makeText(this, "Connessione non disponibile", Toast.LENGTH_SHORT).show();
	     }
	}
}

Abbiamo quasi finito, manca solo da inserire i permessi necessari nel AndroidManifest. Avremo bisogno sia del permesso android.permission.INTERNET per avere accesso al web sia del permesso android.permission.ACCESS_NETWORK_STATE per verificare la possibilità di accesso. Aggiungiamoli tramite l’editor messo a disposizione di Eclipse.

permessi internet

 

Puoi guardare tutte le lezioni passate consultando l’indice del corso di programmazione android