У меня есть приложение 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;
}
}
Возможно ли это?
Я думаю, что вы можете обнаружить новый загруженный URL-запрос таким образом:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Я научился переопределять эту функцию, поэтому при нажатии на ссылку в веб-просмотре не открывается новое действие. Эта функция вызывается каждый раз, когда пользователь нажимает на URL-адрес. Я думаю, что вы можете подключить логику проверки соединения.
Мне любопытно, почему вы должны это проверить. Элемент управления веб-представлением покажет ошибку, если соединение отсутствует. Вы просто пытаетесь закоротить это сообщение об ошибке? Там может быть очень маленькое временное окно, где ваш чек успешно завершен, но тогда сайт становится недоступным, когда клик обрабатывается.
Надеюсь, это поможет, Кевин