Проверка веб-просмотра для подключения через наш сеанс

1

У меня есть приложение WebView, и вам нужно проверить подключение к Интернету с каждым действием "click" внутри приложения. Я получил следующий код для проверки Интернета при запуске приложения. Но мне нужно выяснить, как выполнять эту проверку каждый раз, когда пользователь меняет страницы в веб-просмотре.

Мой код:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    if(!isNetworkConnectionAvailable()){
        Context context = getApplicationContext();
        CharSequence text = "Sorry you need an Internet connection!  Please try again when the network" +
                " is available.";
        int duration = Toast.LENGTH_LONG;

        Toast toast = Toast.makeText(context, text, duration);
        toast.show();

        finish();
    }

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://example.com/");

    mWebView.setWebViewClient(new MyAppViewClient());
}

И это мой код проверки соединения:

    public boolean isNetworkConnectionAvailable() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 

    if (netInfo != null && netInfo.isConnectedOrConnecting()){ 
        return true;
    }
    else{
        return false;
    } 

}

Возможно ли это?

Теги:
webview

1 ответ

0
Лучший ответ

Я думаю, что вы можете обнаружить новый загруженный URL-запрос таким образом:

private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

Я научился переопределять эту функцию, поэтому при нажатии на ссылку в веб-просмотре не открывается новое действие. Эта функция вызывается каждый раз, когда пользователь нажимает на URL-адрес. Я думаю, что вы можете подключить логику проверки соединения.

Мне любопытно, почему вы должны это проверить. Элемент управления веб-представлением покажет ошибку, если соединение отсутствует. Вы просто пытаетесь закоротить это сообщение об ошибке? Там может быть очень маленькое временное окно, где ваш чек успешно завершен, но тогда сайт становится недоступным, когда клик обрабатывается.

Надеюсь, это поможет, Кевин

  • 0
    Кев, спасибо, я посмотрю на добавление моей логики там. Почему? Я не хочу, чтобы пользователи видели страницу "страница недоступна" с URL-адресом веб-приложений.
  • 0
    Отлично. Работает как шарм.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню