2013-04-09 17 views
6

Próba użycia Cordova 2.0.0 i przy użyciu tego kodu do sprawdzania połączenia internetowegosprawdzanie połączenia internetowego z urządzenia za pomocą PhoneGap

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

function onDeviceReady() { 
    alert("ready"); 
    db = window.openDatabase("loginintro", "1.0", "loginintro", 1000000); 
    db.transaction(populateDB, errorCB, successCB); 
    checkConnection(); 
} 
function checkConnection() 
{ alert("connection"); 
    network = navigator.network.connection.type; 
    alert("fdfd"); 
    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]); 
} 

ale coraz błąd na tej linii

network = navigator.network.connection.type; 

i błędu jest :

04-09 15:20:23.989: E/Web Console(13329): Uncaught TypeError: Cannot read property 'connection' of undefined at file:///android_asset/www/js/lib/helloworldjs/alldatabse.js:14 
04-09 15:20:39.419: E/CordovaWebView(13329): CordovaWebView: TIMEOUT ERROR! 
04-09 15:20:39.419: D/Cordova(13329): CordovaWebViewClient.onReceivedError: Error code=-6 Description=The connection to the server was unsuccessful. URL=file:///android_asset/www/index.html 
+0

Masz mały błąd w kodzie. Powinien być ostrzeżony ("Typ połączenia: + stany [sieć]) – wmfairuz

+0

dobry złap, który był jedynym błędem teraz moja funkcja działa dobrze DZIĘKI – Erum

+0

jego onDeviceReady nie onDeviceReady() –

Odpowiedz

4

Masz mały błąd w kodzie. Powinien być ostrzeżony ("Typ połączenia: + stany [sieć]);

Ponadto, upewnij się, że masz te uprawnienia:

Android

app/res/xml/plugins.xml

<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager" /> 

app/AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
3

API zostało zmienione i powinieneś odwoływać się do navigator.connection.

network = navigator.connection.type; 

Następnie zobaczyć benka's answer

0

miałem ten problem z najnowszą wersją Cordova. Miałem wtyczkę sieciową w pliku config.xml, ale nie została ona pobrana do katalogu wtyczek.

ta stała ona

Cordova plugin dodać Cordova-plugin-sieć informacyjna Cordova budować

Nazwa repozytorium zmieniła się w przypadku, gdy stosowane są do:

Cordova plugin dodać org.apache .cordova.network-information

Powiązane problemy