Я использую Android Studio для конвертации моего сайта в приложение для Android.Я пытаюсь показать диалоговое окно, когда нет подключения к Интернету при открытии.Работает нормально.
Но проблема в том, что приложение все еще работает и вдруг нет подключения к интернету.Затем, если я нажму на ссылку, на веб-экране отобразится «Веб-страница недоступна».
![Web page not available](https://i.stack.imgur.com/XyJJT.png)
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());
}
}
Я хочу знать, как предотвратить нажатие кнопки, когда соединение не обнаружено, заменив страницу по умолчанию «Веб-страница недоступна» диалоговым окном «Нет».Интернет, проверь свою связь! "Есть идеи?