web-dev-qa-db-fra.com

Comment vérifier la connexion Internet sur une application Cordova?

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!".

13
Geziel Carvalho

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.

14
Gandhi

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);
5
Tuhin

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();
2

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 ....)

1
Ali Mohammad