2013-12-19 68 views
7

我已經嘗試以下this Cordova文檔指南,但它似乎並沒有工作。檢查與科爾多瓦的iOS應用程序的互聯網連接Phonegap 3.3.0不工作

這裏是我的代碼:

我已經加入到<plugin name="NetworkStatus" value="CDVConnection" />​​3210。

,這劇本我index.html

<script type="text/javascript"> 


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

     // device APIs are available 
     // 
     function onDeviceReady() { 
      alert("1"); // runs this alert 
      checkConnection(); 
     } 

     function checkConnection() { 
      var networkState = Connection.CELL; 
      alert("2"); // doesn't run this 

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

    </script> 

var networkState = Connection.CELL;似乎會導致問題,因爲它沒有運行下面的警告,我也曾嘗試navigator.connection.type但同樣的事情發生。

當我在Chrome中運行應用程序的控制檯輸出以下錯誤:

Uncaught ReferenceError: Connection is not defined 

有人知道如何解決這個問題?

乾杯

+0

您是否在'index.html'文件中包含'Cordova.js' – 2013-12-19 13:00:29

+0

是的我有'' – smj2393

回答

21

我終於解決了問題! - 從無到有另起爐竈,做以下操作:

命令行:

sudo npm install -g cordova 
cordova create hello com.example.hello HelloWorld 
cd hello 
cordova platform add ios 
cordova platforms ls //This will list ios 
cordova plugin add org.apache.cordova.network-information 
cordova build 

然後拖我的文件(HTML,javascript等等)到platforms/ios/www/文件夾。

在xcode中打開hello.xcodeproj

編輯config.xml並添加行:

<feature name="NetworkStatus"> 
    <param name="ios-package" value="CDVConnection" /> 
</feature> 

然後在我的索引文件我用JavaScript的:

<script type="text/javascript"> 
     document.addEventListener("deviceready", onDeviceReady, false); 
     // device APIs are available 
     function onDeviceReady() { 
      if(navigator.network.connection.type == Connection.NONE){ 
       alert("nocon"); 
      }else{ 
       alert("yescon"); 
      } 
     } 
    </script> 

然後在iPhone/iPad的模擬器上運行它,它會輸出「yescon」如果有連接,「nocon」如果沒有連接!

希望這會有所幫助!

+2

更簡單的方法,而無需從頭開始 - http://stackoverflow.com/a/19688926/126600 – zack

+0

不工作我使用ios7和cordova 3.3使用connection.CELL – kavinhuh

+0

我沒有使用connection.CELL,我檢查是否有連接。 – smj2393

0

檢查是否已包含在HTML的Cordova.js文件。

<script type="text/javascript" src="cordova.js"></script> 

並更改您的項目App/Supporting Files/Cordova.plist

<key>Plugins</key> 
    <dict> 
    <key>NetworkStatus</key> 
    <string>CDVConnection</string> 
</dict> 
+0

Cordova.plist已停產,被替換爲我的config.xml,上面的代碼基本上與插件代碼相同 – smj2393

0

這個工作對我來說:

if(navigator.network.connection.type == Connection.NONE){ 
//no connection 
}else{ 
//You are connected. 
} 

雖然我看的文檔中,看起來像有使用這些線路的不同:

var networkState = navigator.network.connection.type;

navigator.network.connection。對於所有蜂窩數據,類型設置爲Connection.CELL_2G

是不是var networkState = Connection.CELL_2G;

+0

我已經嘗試過navigator.network.connection.type,我認爲這是貶值或不適用於iOS,它說在底部科爾多瓦文檔頁面(用於3.3.0) - iOS怪癖 iOS無法檢測蜂窩網絡連接的類型。 對於所有蜂窩數據,navigator.connection.type設置爲Connection.CELL。 – smj2393

+0

它說'Connection.CELL_2G',我不確定這是否會影響。 – JunM

+0

重建應用程序並通過www文件複製後,它仍然無法工作..當你說你得到它的工作是你使用科爾多瓦3.3.0? – smj2393

相關問題