2012-08-04 51 views
2

我試圖檢測用戶是否在他們的Android設備上有互聯網連接。如果他們沒有互聯網,我希望能夠展示一個視圖,該視圖上有一個說「重試」的按鈕,就像Google Play應用商店那樣。在使用下面的代碼之前,我使用原生的android webview檢測不到任何信號,但是現在我想找到一種方法來使用PhoneGap執行相同的操作。另外,如果有人可以提供一些關於如何重新加載網頁的示例代碼,那就太棒了!在Android上處理與PhoneGap沒有互聯網連接

webview.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      Intent myIntent = new Intent(view.getContext(), LoadScreen.class); 

      startActivity(myIntent); 
      finish(); 
     } 
    }); 

回答

2

通過使用下面的代碼解決了這個:

public boolean isOnline() { 
    ConnectivityManager cm = 
     (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 
+0

請考慮使用「isConnected()」,以保證網絡完全可用。更具體地說,關於[管理網絡使用]的官方Android培訓(http://developer.android.com/training/basics/network-ops/managing.html#check-connection)說:「你應該總是檢查'isConnected( )'在執行網絡操作之前​​,因爲'isConnected()'處理例如片狀移動網絡,飛行模式和受限背景數據的情況。「 – user113215 2012-09-18 16:35:51

0

您可以測試navigator.online值來確定連接:

https://developer.mozilla.org/en-US/docs/DOM/window.navigator.onLine

+0

所以你說創造javascriptinterface?有沒有辦法做到這一點,而不必在Java中嵌入JavaScript?我被告知,這可能會導致嚴重的安全漏洞... – Mobie 2012-08-04 04:37:10

+0

哦,對不起,我只用過一次phonegap,它主要是HTML/js,有一些本地代碼灑在(但它是iOS,不是對java/js組合的評論) – 2012-08-04 11:57:51