2011-12-02 64 views

回答

2
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; 
    } 
+2

此代碼檢查連接從服務器和響應它比連接管理器更可靠,因爲在某些情況下,wifi已啓用,但不是能夠連接到服務器或可以得到任何迴應。謝謝。 – SALMAN

0

您可以隨時使用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(); 
     } 
    }); 
3

你可以在上面的WebView方法的進度百分比值

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); 
      } 
     }); 

低於進度代碼是情況綜述的價值

+0

在某些情況下,即使進度爲100%,也不能保證頁面已完全加載。檢查這個問題http://stackoverflow.com/q/6199717/840669 – Rajkiran

8

請試試這個

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

似乎onPageFinished也稱爲當有錯誤(例如沒有互聯網連接)。 –