Ich habe rund um den Tag für die Antwort zu diesem Thema gesucht und die Google-Kugel hat keine Antworten zur Verfügung gestellt. Ich habe alles versucht, was ich kann und habe die vorgeschlagenen Lösungen und Antworten durchgearbeitet und nichts hat funktioniert. zu erfassen sowohl den Netzwerkstatus und die Art der NetzwerkverbindungPhonegap Network Connection - Kann nicht lesen Eigenschaft "Typ" von undefined
Auf den Punkt gebracht Ich versuche, eine Phonegap
App für Android
und Apple
Mobile-Geräte und eine der Funktionen, die ich brauchen, ist zu entwickeln. Unten ist der Code, den ich verwende.
Die Firing device ready
Warnung löst aus und dann erhalte ich den Fehler Cannot read property 'type' of undefined
gefolgt von dem Durchschleifen des Navigator
Objekts. Wenn ich durch jede dieser Eigenschaften des Objekts gehe, sehe ich weder die connection
Eigenschaft noch die network
Eigenschaft, wie sie in älteren Versionen verwendet wurde.
Wer hat irgendwelche Ideen?
index.html
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- jQuery Core -->
<script src="js/jquery-1.11.1.min.js"></script>
<!-- The main engine for the software. -->
<script src="js/main.js"></script>
<!-- Third party plugins -->
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="barcodescanner.js"></script>
<script type="text/javascript" src="childbrowser.js"></script>
<script type="text/javascript" src="js/barcode.js"></script>
<title>index</title>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
</script>
</head>
<body>
<script>
barcode_app.initialize();
</script>
</body>
</html>
main.js
function onDeviceReady(){
alert('Firing device ready');
try{
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.NONE] = 'No network connection';
$("#system_popup").html('Connection type: ' + states[networkState]);
$("#system_popup").popup("open")
//alert('Connection type: ' + states[networkState]);
}catch(e){
alert(e);
$.each(navigator, function(key, value){
alert(key+' => '+value);
});
}
}
Und in meinem config.xml ich habe:
<plugin
name="NetworkStatus"
value="org.apache.cordova.NetworkManager" />
<gap:config-file platform="android" parent="/manifest">
<uses-permission name="android.permission.ACCESS_NETWORK_STATE" />
</gap:config-file>
<gap:config-file platform="android" parent="/manifest">
<uses-permission name="android.permission.INTERNET" />
</gap:config-file>
<gap:config-file platform="android" parent="/manifest">
<uses-permission name="android.permission.READ_PHONE_STATE" />
</gap:config-file>
<feature name="http://api.phonegap.com/1.0/device" />
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.NetworkManager" />
<param name="ios-package" value="CDVConnection" />
</feature>
UPDATE: SOLUTION
Eine Lösung wurde schließlich durch die gemeinsamen Anstrengungen von @Dawson Loudon und @benka formuliert. Dawson korrigiert das Plugin war ich mit, welche hätte sein sollen:
<gap:plugin
name="org.apache.cordova.network-information"
version="0.2.7" />
Und das wirklich funktioniert nur richtig nach der Umsetzung der kurzen Verzögerung durch @benka erwähnt. So, jetzt der Arbeits Code wie folgt aussieht in JavaScript:
function onDeviceReady(){
try{
var networkState = navigator.connection && navigator.connection.type;
setTimeout(function(){
networkState = navigator.connection && 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.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}, 500);
}catch(e){
alert(e);
$.each(navigator, function(key, value){
alert(key+' => '+value);
});
}
}
werden Sie den Aufbau vor Ort oder an build.phonegap.com? –
build.phonegap.com –
Sie möchten das Plugin hier finden: https://build.phonegap.com/plugins/626 '' –