Używam navigator.network.connection.type
, aby uzyskać status sieci urządzenia. Ale to pokazuje błądPhonegap/Cordova - TypeError: Wynik wyrażenia 'navigator.network' [undefined] nie jest obiektem
TypeError: Result of expression 'navigator.network' [undefined] is not an object.
Próbowałem z PhoneGap 1.0.0, 1.7.0 Cordova, Cordova 1.7.0rc1, ale wciąż ten sam błąd.
Działa dobrze na iOS, ale nie na Androida. Czy ktoś może mi w tym pomóc?
Oto mój kod:
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady() {
checkConnection();
loaddb();
}
function checkConnection() {
alert(navigator.network);
if(navigator.network==undefined) {
window.localStorage.setItem("internetAccessFlag","false");
} else {
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';
if(networkState==Connection.UNKNOWN || networkState==Connection.NONE) {
window.localStorage.setItem("internetAccessFlag","false");
} else {
window.localStorage.setItem("internetAccessFlag","true");
}
//alert(window.localStorage.getItem("internetAccessFlag"));
}
}
</script>
EDIT: - Używam Cordova 1.7.0 i plugins.xml ma
<plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
Czy coś muszę z tym zrobić?
Zobacz http://stackoverflow.com/a/10216239/1321873 – Rajesh
To nie wydaje się być problemem. Mam poprawnie podaną ścieżkę i nazwę. – ilight
Czy czekasz na zdarzenie "deviceready", zanim spróbujesz uzyskać dostęp do właściwości navigator.network.connection.type? –