Как проверить, загружен ли URL в webview или нет - PullRequest
3 голосов
/ 02 декабря 2011

Я загружаю URL-адрес в веб-браузере Android, используя код ниже

webviewShowPost.loadUrl(URL);

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

Спасибо

Ответы [ 5 ]

8 голосов
/ 02 декабря 2011

Пожалуйста, попробуйте это

webView.setWebViewClient(new WebViewClient() { 
        @Override
        public void onReceivedError(WebView view, int errorCode,
                String description, String failingUrl) {
            // TODO Auto-generated method stub
            super.onReceivedError(view, errorCode, description, failingUrl);
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
        }


    });
2 голосов
/ 02 декабря 2011

Вы можете получить значение процента прогресса в приведенном выше методе просмотра веб-страниц.

 mWebView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)  
        {
         //Make the bar disappear after URL is loaded, and changes string to Loading...
     //Make the bar disappear after URL is loaded
         System.out.println("Value of progress"+progress);
            pbweb.setProgress(progress);

            if(progress == 100)


            pbweb.setVisibility(View.GONE);
          }
        });

ниже кода, находящегося в процессе выполнения, значение progerss

2 голосов
/ 02 декабря 2011
public static boolean isOnline(Context context) {

        try {
            ConnectivityManager cm = (ConnectivityManager) context

            .getSystemService(Context.CONNECTIVITY_SERVICE);

            if (cm.getActiveNetworkInfo().isConnectedOrConnecting()) {

                URL url = new URL("http://www.google.com.pk/");
                                HttpURLConnection urlc = (HttpURLConnection) url
                        .openConnection();
                urlc.setConnectTimeout(1000); // mTimeout is in seconds

                urlc.connect();

                if (urlc.getResponseCode() == 200) {
                    return true;
                } else {
                    return false;
                }
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }
0 голосов
/ 02 декабря 2011

вы всегда можете использовать WebViewClient для этой цели.

    web.setWebViewClient(new WebViewClient(){

         public void onReceivedError(WebView view, int errorCode, String description,String failingUrl) {
             Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
         }
    });
0 голосов
/ 02 декабря 2011

Вы хотите проверить, есть ли подключение к сети перед загрузкой страницы, что означает, что вы хотите сделать это: https://stackoverflow.com/a/2001824/960048

...