/ / navigator.onLine on Ionic App - Javascript, Angular, Ionen-Framework

navigator.onLine auf Ionic-App - Javascript, Angularjs, Ionic-Framework

In meiner Ionic-App muss ich bestimmte Aktionen ausführen, je nachdem, ob der Benutzer offline oder online ist.

Ich würde das $ cordovaNetwork-Plugin im verwendenApp, um den Verbindungsstatus zu finden. Während der Entwicklung auf meinem Laptop suche ich jedoch nach einer einfachen Möglichkeit, die Konnektivität zu testen (ohne sie auf dem Gerät bereitstellen zu müssen).

Also habe ich überlegt, den Navigator zu verwenden.onLine zum Testen der Offline- / Online-Geschäftslogik. Aber auch wenn ich WLAN am Laptop ausschalte (es ist kein LAN-Kabel an den Laptop angeschlossen), gibt navigator.onLine immer noch true zurück.

Kann mir bitte jemand einen Rat geben, wie ich navigator.onLine dazu bringen kann, falsch oder auf andere Weise zurückzukehren, um herauszufinden, ob eine Internetverbindung besteht oder nicht?

BEARBEITEN: Der Browser ist Chrome

Antworten:

2 für die Antwort № 1

Der Servicecode:

//service to check if device or (browser) is online or offline

.factory("ConnectivityMonitor", function($rootScope, $cordovaNetwork){

return {
isOnline: function(){
if(ionic.Platform.isWebView()){
return $cordovaNetwork.isOnline();
} else {
return navigator.onLine;
}
},
isOffline: function(){
if(ionic.Platform.isWebView()){
return !$cordovaNetwork.isOnline();
} else {
return !navigator.onLine;
}
},
startWatching: function(){
if(ionic.Platform.isWebView()){

$rootScope.$on("$cordovaNetwork:online", function(event, networkState){
console.log("went online");
});

$rootScope.$on("$cordovaNetwork:offline", function(event, networkState){
console.log("went offline");
});

}else {

window.addEventListener("online", function(e) {
console.log("went online");
}, false);

window.addEventListener("offline", function(e) {
console.log("went offline");
}, false);
}
}
}
})

Dann im Controller (ein Beispiel):

.controller("Map3Ctrl",
function(ConnectivityMonitor) {

if(ConnectivityMonitor.isOnline()){
console.log("online")
}else{
console.log("offline");
}

})

Überwachen von Online- und Offline-Zuständen in einer ionischen Anwendung