J'ai essayé quelques suggestions, telles que navigator.onLine, mais même en mode avion, mon application "pense" que c'est en ligne.
J'ai également trouvé quelques suggestions avec ajax, mais je veux juste vérifier si je suis en ligne pour ouvrir une page Web externe. Sinon, j'ai l'intention d'afficher un message tel que "Votre appareil semble être hors ligne. Vérifiez votre connexion!".
La meilleure approche consiste à utiliser cordova network information plugin
qui fait le travail pour vous en toute transparence. Ce plugin fournit des informations sur la connexion cellulaire et wifi de l'appareil, et si l'appareil dispose d'une connexion Internet.
Vous consultez la page officielle de github de ce plugin pour plus d'informations sur le même. J'espère que ça aide.
Téléchargez le plugin: https://www.npmjs.com/package/cordova-plugin-network-information
Et essayez ceci.
document.addEventListener("deviceready", function(e){
console.log(navigator.connection.type);
document.addEventListener("offline", function(e){
alert("NO_NETWORK");
}, false);
}, false);
hors ligne
L'événement se déclenche lorsqu'une application se déconnecte et que l'appareil n'est pas connecté à Internet.
document.addEventListener("offline", yourCallbackFunction, false);
Par ceci
function checkConnection() {
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.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
checkConnection();
vous pouvez utiliser cela plugin
vous pouvez l'utiliser partout dans votre application sans l'importer
if(navigator.connection.type === 'none') {
alert('there is no internet')
}
et vous pouvez l'ajouter dans setInterval
setInterval(() => {
if(navigator.connection.type === 'none') {
alert('there is no internet')
} }, 5000);
il y a une autre valeur pour "avigator.connection.type" par exemple quand il y a internet alors la valeur pour "avigator.connection.type" est le type de connexion (wifi, 4g, 3g, ethernet sur windows ....)