2012-07-07 47 views
1
<html> 
    <head> 
    <title>Cordova Offline Example</title> 

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script> 
    <script type="text/javascript" charset="utf-8"> 

    // Call onDeviceReady when Cordova is loaded. 
    // 
    // At this point, the document has loaded but cordova-1.9.0.js has not. 
    // When Cordova is loaded and talking with the native device, 
    // it will call the event `deviceready`. 
    // 

    function Network(){ 
     if(navigator.onLine) 
      { 
       alert('You are Online'); 
      } 
     else 
      { 
       alert('You are Offline') 
      } 
    } 
    </script> 
    </head> 
    <body > 
    <input type="button" value="Check Network" onclick="Network()" /> 
    </body> 
</html> 

我想檢查使用html代碼的網絡連接。它工作,如果我在我的本地機器上運行此代碼在crome上,但爲什麼它不適用於android。html 5代碼不能在Android上使用phonegap

+0

上述代碼的問題在於,您無法區分脫機的設備和不支持navigator.onLine屬性的設備。我的猜測是,Android瀏覽器不支持它。嘗試在if語句的開始處添加if(navigator.onLine === undefined)以檢查是否支持。 – 2012-07-07 11:15:10

+0

這就是爲什麼當在線時navigator.onLine = true – vishalg 2012-07-07 11:30:24

+0

navigator.onLine返回瀏覽器的在線狀態,因此很少有瀏覽器提供將狀態更改爲像IE和Firefox這樣的離線工作狀態的功能,只要Chrome瀏覽器連接到任何可用的網絡,Chrome就會讓你在線上顯示 – dhaval 2012-07-07 11:32:59

回答

2

它有u必須使用像互聯網連接檢查問題

這裏有些TAKS一些PhoneGap的特定事件是其中U可以檢查網絡connectivty爲例

<!DOCTYPE html> 

navigator.network.connection.type示例

<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script> 
<script type="text/javascript" charset="utf-8"> 

// Wait for PhoneGap to load 
// 
document.addEventListener("deviceready", onDeviceReady, false); 

// PhoneGap is loaded and it is now safe to make calls PhoneGap methods 
// 
function onDeviceReady() { 
    checkConnection(); 
} 

function checkConnection() { 
    var networkState = navigator.network.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.NONE]  = 'No network connection'; 

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

</script> 

對話框將報告網絡狀態。

更多詳細看看這個Connection

+0

我試過這段代碼很多次,但沒有工作,因爲每次我運行這段代碼時,即使我從互聯網上disconeect相同的輸出是通信,即「單元格3G連接」。有沒有解決方案,我已經看到很多人都問過同樣的問題 – vishalg 2012-07-07 11:06:17

+0

謝謝它的作品.... – vishalg 2012-07-07 12:23:04

+0

嗯,恭喜.... – Aamirkhan 2012-07-07 12:23:41

0

//只需在代碼頂部添加下面這行,現在檢查它。

<!DOCTYPE HTML> 
+0

我在代碼的頂部添加了這行代碼....我不知道它是否始終以「您是在線」警報作爲輸出,即使我斷開互聯網。 – vishalg 2012-07-07 11:04:38

0

navigator.onLine返回瀏覽器的在線狀態,所以有它提供的功能改變的狀態爲脫機工作像IE和Firefox,Chrome的一些瀏覽器只要有它連接到任何可用的網絡

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

要確保你的設備是真正連接到公共/ PRI爲您提供了在線真vate網絡,你應該做一個簡單的AJAX調用來檢查目標機器是否可以訪問。

我在我的一個應用程序中遵循上述方法,我需要從Device連接到專用VPN網絡,以確保所需的網絡真正可用並基於此執行所需的代碼。

相關問題