
Vedremo 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.
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("https://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.
Puoi guardare tutte le lezioni passate consultando l’indice del corso di programmazione android