2016-08-02 63 views
7

我嘗試了一些建議,如navigator.onLine,但即使在飛行模式下,我的應用程序「認爲」它的在線。如何檢查科爾多瓦應用程序上的Internet連接?

我也發現了一些與Ajax的建議,但我只是想檢查我是否在線打開外部網頁。如果沒有,我打算顯示一條消息,例如「您的設備似乎處於脫機狀態,請檢查您的連接!」。

+0

和似乎是什麼問題?如果在嘗試連接到服務時顯示該消息時出現錯誤,您不能這樣做嗎? – MatejMecka

回答

9

最好的方法是使用cordova network information plugin,它爲您無縫地完成工作。該插件提供有關設備蜂窩和WiFi連接的信息,以及設備是否具有互聯網連接。

您可以查看該插件的official github page以獲取更多相關信息。希望能幫助到你。

2

通過this

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

    var states = {}; 
    states[Connection.UNKNOWN] = 'Unknown connection'; 
    states[Connection.ETHERNET] = 'Ethernet connection'; 
    states[Connection.WIFI]  = 'WiFi connection'; 
    states[Connection.CELL_2G] = 'Cell 2G connection'; 
    states[Connection.CELL_3G] = 'Cell 3G connection'; 
    states[Connection.CELL_4G] = 'Cell 4G connection'; 
    states[Connection.CELL]  = 'Cell generic connection'; 
    states[Connection.NONE]  = 'No network connection'; 

    alert('Connection type: ' + states[networkState]); 
} 

checkConnection(); 
2

下載插件:https://www.npmjs.com/package/cordova-plugin-network-information

,並嘗試這個。

document.addEventListener("deviceready", function(e){ 
     console.log(navigator.connection.type); 
     document.addEventListener("offline", function(e){ 
          alert("NO_NETWORK"); 

     }, false); 
}, false); 

離線

當應用程序脫機,而設備未連接到互聯網的事件觸發。

document.addEventListener("offline", yourCallbackFunction, false); 
相關問題