I use Android Studio for converting my website in android application. I try to show dialog box when no internet connection at the opening. It works fine.
But the problem is when the application is still running and suddenly there is no internet connection. Then if i click on a url, the webview display "Web page not available".
MainActivity.java
package com.example.myapp;
import android.graphics.Bitmap;
import android.provider.SyncStateContract;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private WebView mywebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (!DetectConnection.checkInternetConnection(this)) {
try {
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Info");
alertDialog.setMessage("Internet non disponible, Verifiez votre connexion internet et réessayez");
alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Réessayer", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
startActivity(getIntent());
}
});
alertDialog.show();
} catch (Exception e) {
}
} else {
mywebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mywebView.getSettings();
mywebView.loadUrl("https://myapp.com/");
mywebView.setWebViewClient(new WebViewClient());
mywebView.clearCache(true);
mywebView.clearHistory();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
}
}
public class myWebClient extends WebViewClient{
@Override
public void onPageStarted (WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public void onBackPressed (){
if(mywebView.canGoBack()){
mywebView.goBack();
} else {
super.onBackPressed();
}
}
}
DetectConnection.java
package com.example.mycollege;
import android.content.Context;
import android.net.ConnectivityManager;
public class DetectConnection {
public static boolean checkInternetConnection(MainActivity context) {
ConnectivityManager con_manager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
return (con_manager.getActiveNetworkInfo() != null
&& con_manager.getActiveNetworkInfo().isAvailable()
&& con_manager.getActiveNetworkInfo().isConnected());
}
}
I want to know how to prevent the click on the when no connection detected replacing the default page "Web page not available" by a dialog box "No internet, check your connexion!". Any ideas?