2012-11-28 67 views
1

我遇到了2.1.0的問題,所以我升級到了2.2.0以確保它沒有出現錯誤,但它仍然無法正常工作。無法通過PhoneGap 2.2.0檢索連接狀態

我有下面的代碼:

checkConnection: function() { 

     alert(1); 
     alert(navigator.connection.type); 
     alert(2); 

     var networkState = navigator.connection.type; 

     if(networkState == 'Connection.UNKNOWN' || networkState == 'Connection.NONE') { 
      return false; 
     } else { 
      return true;  
     } 
    } 

第一個提醒火災和產生1,那麼之後,它只是死亡。我也嘗試過navigator.network.connection.type這是一箇舊的參考,也不起作用。我現在不知道爲什麼它不起作用,其他的PhoneGap函數工作得很好(比如GeoLocation)。

僅供參考我正在運行iOS 6.0.1的iPhone 5上。

在此先感謝!

回答

3

檢查是否執行了對checkConnection的調用deviceready事件。

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    console.log('Application online: ' + checkConnection()); 
} 

function checkConnection() { 
    var networkState = navigator.connection.type; 

    if (networkState == Connection.UNKNOWN || networkState == Connection.NONE) { 
     return false; 
    } else { 
     return true;  
    } 
} 

而且你不應該用字符串'Connection.UNKNOWN'但隨着不斷Connection.UNKNOWN比較。沒有單引號。

+0

謝謝,我已經改變了,但是這並沒有解決問題,因爲實際問題首先是從navigator.connection.type中檢索數據。當它調用第二個alert()時,它沒有返回任何值,因爲它不能檢索該值。 – Ashley

+0

@Ashley你確定在deviceready事件之後調用了checkConnection嗎? http://docs.phonegap.com/en/2.2.0/cordova_events_events.md.html#deviceready –

+0

現在我覺得很傻,這個功能被稱爲太早!歡呼挑剔,現在就開始一種享受! – Ashley