Кастомный onReceivedError

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Googlе
Сообщения: 1
Зарегистрирован: 30 янв 2016, 05:31

Кастомный onReceivedError

Сообщение Googlе » 30 янв 2016, 05:48

Всем добрый день, к вам гости из 4pda :D
Я разрабатываю приложение, основную роль в котором играет компонент WebView. При отсутствии подключения к интернету или при потере сигнала вызывается метод onReceivedError . По умолчанию отображается экран с заголовком Веб страница недоступна. Вопросик - каким образом можно сделать свой, экран покрасивее с кнопкой "Обновить"? Я пробовал сделать переход на другую активность с такой кнопкой но интерфейс жёстко лагал при быстрых нажатиях. Как это вообще умудряются сделать?

Sergey777
Сообщения: 68
Зарегистрирован: 30 мар 2015, 17:16

Re: Кастомный onReceivedError

Сообщение Sergey777 » 30 янв 2016, 16:12

Googlе писал(а):Всем добрый день, к вам гости из 4pda :D
Я разрабатываю приложение, основную роль в котором играет компонент WebView. При отсутствии подключения к интернету или при потере сигнала вызывается метод onReceivedError . По умолчанию отображается экран с заголовком Веб страница недоступна. Вопросик - каким образом можно сделать свой, экран покрасивее с кнопкой "Обновить"? Я пробовал сделать переход на другую активность с такой кнопкой но интерфейс жёстко лагал при быстрых нажатиях. Как это вообще умудряются сделать?
Здравствуйте! Наличие интернета на устройстве можно проверить так:

Код: Выделить всё

                    public boolean  checksOnline(){
			ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
			NetworkInfo mob = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
			WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
			if (wifi.isWifiEnabled()==true||mob.isConnected() == true){
				// интернет есть
                                // какой-то код, например можно вывести Toast
                       return boolean check = true;
			} else {
			   // интернета нет
                           // какой-то код
                        return boolean check = false;
			}
			}
Можете использовать этот конструктор и проверять наличие интернета в том месте кода, где это нужно. Так же можно переопределить метод onReceivedError

Код: Выделить всё

 @Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl) {
        if (view.canGoBack()) {
            view.goBack();
        }
        Toast toast = Toast.makeText(getBaseContext(), description,
                Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.TOP | Gravity.CENTER, 0, 0);
        toast.show();
    }

Ответить