In questo articolo vedremo come verificare se il dispositivo è connesso ad internet in modo da visualizzare un messaggio.
Nel precedente articolo abbiamo visto come aggiornare la pagina web.
Per verificare la connessione internet del dispositivo dobbiamo aggiungere il permesso di accedere allo stato della connessione internet, per questo apriamo il file AndroidManifest.xml ed inseriamo questa riga di codice prima del tag application
Il risultato finale del file AndroidManifest.xml
Ora è necessario aggiungere queste variabili al file MainActivity.kt
aggiungere poi questa funzione al file MainActivity.kt subito dopo la funzione onCreate
aggiungere questo controllo all'interno della funzione onCreate
Questo è il risultato finale del file MainActivity.kt
Notare che è stata modificata la riga 108
Dopo aver attivato la connessione ad internet e cliccato su Refresh (aggiorna pagina)
Nel precedente articolo abbiamo visto come aggiornare la pagina web.
Per verificare la connessione internet del dispositivo dobbiamo aggiungere il permesso di accedere allo stato della connessione internet, per questo apriamo il file AndroidManifest.xml ed inseriamo questa riga di codice prima del tag application
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.dm.tutorialwebview4"> | |
<uses-permission android:name="android.permission.INTERNET"/> | |
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--Autorizzazione stato connessione--> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:roundIcon="@mipmap/ic_launcher_round" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<activity | |
android:name="com.dm.tutorialwebview4.MainActivity" | |
android:label="@string/app_name" | |
android:theme="@style/AppTheme.NoActionBar"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN"/> | |
<category android:name="android.intent.category.LAUNCHER"/> | |
</intent-filter> | |
</activity> | |
</application> | |
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//variabili aggiunte per le verifica della connessione internet | |
var context = this | |
var connectivity : ConnectivityManager? = null | |
var info : NetworkInfo? = null | |
//fine variabili per la verifica della connessione internet |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fun isConnected() : Boolean | |
{ | |
connectivity = context.getSystemService(Service.CONNECTIVITY_SERVICE) as ConnectivityManager | |
if(connectivity != null) | |
{ | |
info = connectivity!!.activeNetworkInfo | |
if(info != null) | |
{ | |
if(info!!.state == NetworkInfo.State.CONNECTED) | |
{ | |
return true | |
} | |
} | |
} | |
return false | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//controllo della connessione in fase di avvio dell'app | |
if(isConnected()) | |
{ | |
//aggiungere qui eventuale codice da eseguire se il dispositivo è connesso ad internet | |
} | |
else | |
{ | |
//aggiungere qui eventuale codice da eseguire se il dispositivo NON è connesso ad internet | |
Toast.makeText(context, "Non connesso ad internet", LENGTH_LONG).show() | |
} | |
//fine del controllo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.dm.tutorialwebview4 | |
import android.app.Service //importazione della CLasse: Service | |
import android.graphics.Bitmap //importazione della CLasse: Bitmap | |
import android.net.ConnectivityManager //importazione della CLasse: ConnectivityManager | |
import android.net.NetworkInfo //importazione della CLasse: NetworkInfo | |
import android.os.Bundle | |
import android.support.v7.app.AppCompatActivity; | |
import android.view.Menu | |
import android.view.MenuItem | |
import android.view.View | |
import android.webkit.WebChromeClient //importazione della CLasse: WebChromeClient | |
import android.webkit.WebView //importazione della CLasse: WebView | |
import android.webkit.WebViewClient //importazione della CLasse: WebViewClient | |
import android.widget.Toast //importazione della CLasse: Toast | |
import android.widget.Toast.* //importazione della CLasse: Toast estesa | |
import kotlinx.android.synthetic.main.activity_main.* | |
import kotlinx.android.synthetic.main.content_main.* | |
class MainActivity : AppCompatActivity() { | |
var webview: WebView? = null | |
//variabili aggiunte per le verifica della connessione internet | |
var context = this | |
var connectivity : ConnectivityManager? = null | |
var info : NetworkInfo? = null | |
//fine variabili per la verifica della connessione internet | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
setSupportActionBar(toolbar) | |
webview = findViewById(R.id.myweb) | |
webview!!.webViewClient = WebViewClient() | |
webview!!.settings.javaScriptEnabled = true | |
webview!!.webChromeClient = WebChromeClient() | |
webview!!.settings.domStorageEnabled = true | |
webview!!.settings.builtInZoomControls = true | |
webview!!.settings.setSupportZoom(true) | |
webview!!.overScrollMode = WebView.OVER_SCROLL_NEVER | |
webview!!.settings.useWideViewPort = true | |
webview!!.setInitialScale(1) | |
webview!!.loadUrl("https://davidetech.blogspot.com") | |
//controllo della connessione in fase di avvio dell'app | |
if(isConnected()) | |
{ | |
//aggiungere qui eventuale codice da eseguire se il dispositivo è connesso ad internet | |
} | |
else | |
{ | |
//aggiungere qui eventuale codice da eseguire se il dispositivo NON è connesso ad internet | |
Toast.makeText(context, "Non connesso ad internet", LENGTH_LONG).show() | |
} | |
//fine del controllo | |
if(webview != null) | |
{ | |
webview!!.webViewClient = object: WebViewClient(){ | |
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { | |
progressBar.visibility = View.VISIBLE | |
super.onPageStarted(view, url, favicon) | |
} | |
override fun onPageFinished(view: WebView?, url: String?) { | |
progressBar.visibility = View.GONE | |
super.onPageFinished(view, url) | |
} | |
} | |
} | |
} | |
//funzione che verifica lo stato della connessione internet | |
fun isConnected() : Boolean | |
{ | |
connectivity = context.getSystemService(Service.CONNECTIVITY_SERVICE) as ConnectivityManager | |
if(connectivity != null) | |
{ | |
info = connectivity!!.activeNetworkInfo | |
if(info != null) | |
{ | |
if(info!!.state == NetworkInfo.State.CONNECTED) | |
{ | |
return true | |
} | |
} | |
} | |
return false | |
} | |
//fine della funzione che verifica lo stato della connessione internet | |
override fun onCreateOptionsMenu(menu: Menu): Boolean { | |
// Inflate the menu; questo aggiunge elementi alla barra delle azioni se è presente. | |
menuInflater.inflate(R.menu.menu_main, menu) | |
return true | |
} | |
override fun onOptionsItemSelected(item: MenuItem): Boolean { | |
// Gestisci i clic degli elementi della barra delle azioni qui. | |
// La barra delle azioni gestirà automaticamente i clic sul pulsante Home / Su, | |
// purché si specifichi un'attività principale in AndroidManifest.xml. | |
when (item.itemId) { | |
R.id.action_refresh -> { | |
//modificato il reload con questa riga di codice | |
webview!!.loadUrl(webview!!.getUrl().toString()) | |
} | |
} | |
return true | |
} | |
} |
Dopo aver attivato la connessione ad internet e cliccato su Refresh (aggiorna pagina)
Download Project | ![]() |
Download file APK | ![]() |
Commenti
Posta un commento