Приложение на WebView и ошибки на подобии ERR_INTERNET_DISCONNECT
В общем вопрос таков. При использовании приложения и потере соединения появляется ошибка
Можно ли обработать эту ошибку для показа своей страницы?
Пробовал метод onReceivedError не помогло. Помогите пожалуйста, код прилагается
import androidx.appcompat.app.AppCompatActivity;
public class Game_Activity extends AppCompatActivity {
private long backPressedTime;
private Toast backToast;
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
webView = findViewById(R.id.web_view);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
SimpleWebViewClientImpl webViewClient = new SimpleWebViewClientImpl(this);
webView.setWebViewClient(webViewClient);
ConnectivityManager connectivityManager = (ConnectivityManager)
getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
//Проверяем подключение
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo == null || !networkInfo.isConnected() || !networkInfo.isAvailable()){
Dialog dialog = new Dialog(this);
//Показываем диалог
dialog.setContentView(R.layout.alert_dialog);
dialog.setCanceledOnTouchOutside(false);
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.getWindow().getAttributes().windowAnimations =
android.R.style.Animation_Dialog;
Button btTryAgain = dialog.findViewById(R.id.bt_try_again);
btTryAgain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
recreate();
}
});
dialog.show();
}else {
//Если интернет есть загружаем сайт
webView.loadUrl("https://URL/");
}
}
public class myWebViewclient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error){
//Your code to do
setContentView(R.layout.alert_dialog);
}
}
//Выход по дабл тапу кнопки Назад
@Override
public void onBackPressed() {
if (backPressedTime + 2000 > System.currentTimeMillis()) {
backToast.cancel();
super.onBackPressed();
return;
}else{
backToast = Toast.makeText(getBaseContext(),"Нажмите еще раз для выхода", Toast.LENGTH_SHORT);
backToast.show();
}
backPressedTime = System.currentTimeMillis();
}
}