11
votes

Boîte d'alerte quand aucune connexion Internet - PhoneGap

J'essaie d'obtenir une pop-up, bien, apparaître lorsqu'il n'y a pas de connexion Internet sur l'appareil.

J'ai L'exemple suivant Travailler, mais maintenant je souhaite que l'alerte uniquement à afficher lorsque le résultat n'est" pas de connexion réseau ". < P> J'ai essayé ceci: xxx

mais qui rend simplement la boîte d'alerte pop up, peu importe s'il y a une connexion ou non. Qui peut m'aider? :)


0 commentaires

9 Réponses :


7
votes

Si vous faites

if (networkState == Connection.NONE){
  alert('no internet ');
};


2 commentaires

Cela fait exactement ce que l'exemple fait: renvoyer le type de connexion dans une zone d'alerte. Ce que je veux, c'est que la boîte contextuelle ne s'affiche que lorsque la connexion est états [connexion.none]


Où ajouter ce code? Je veux dire puis-je appeler ceci dans le $ (document) .Ready (fonction (fonction () {...} fonction?



3
votes

C'est parce que vous testez la vérité d'une constante. Ce type de test reviendra toujours vrai. Ce que vous voulez utiliser est:

if (navigator.network.connection.type == Connection.NONE]{
  alert('Geen internet :(');
};


0 commentaires

3
votes

Vérifiez la dernière documentation pour Cordoue 2.0.0 Ici: http : //docs.honegap.com/fr/2.0.0/cordova_connection_connection.md.html#Connection

Il y a un bon exemple. Vous devez vérifier la connexion.none ou connexion.unknown - les deux moyennes pas Internet. Quelque chose d'autre signifie que vous avez une connexion Internet de quelque sorte.


0 commentaires

4
votes

Ajouter autre chose à faire ...

if (navigator.network.connection.type == Connection.NONE) {
    alert('Geen internet :(');
}
else {
    // nothing
};


0 commentaires

25
votes

Question Old-Ish, mais voici comment je le ferais - vous pouvez utiliser des événements pour détecter si l'appareil est en ligne ou hors ligne. Ceci est idéal pour cette situation car la fenêtre contextuelle apparaîtra dès que l'appareil passe hors ligne:

document.addeventlistener ("hors ligne", fonction () {alerte ("tu es hors connexion")}, false);

et faire de même, mais lorsque l'appareil regagne une connexion Internet?:

document.addeventListener ("Online", fonction () {alerte ("Vous êtes en ligne")}, false);

Découvrez les événements Docs ici: http://docs.phonegap.com/ EN / 1.8.1 / CORDOVA_EVENT_EVENT.MD.HTML # Offline

mise à jour:

AS de Cordoue 5 Ces événements ont été déplacés vers Cordova-plugin-réseau-information


4 commentaires

Est venu par cette question par coïncidence et remarquée, je n'ai jamais marqué une réponse aussi correcte. Cela semble le plus facile et le meilleur anser, merci!


C'est génial mais j'aimerais connaître l'état lorsque l'application commence initialement - existe-t-il un moyen de l'obtenir de la même manière?


Est-ce que quelqu'un est confronté à la question que je suis confronté - Stackoverflow.com/Questtions/35425746/...


Je trouve que ces méthodes sont très incompatibles lors de l'utilisation de Cordoue. Parfois, il dit que la connexion n'a-t-elle aucun moyen d'exister.



1
votes

solution: xxx


0 commentaires

0
votes
Try the below code.  

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 ((states[networkState]) == states[Connection.NONE])
{
alert("Please check your internet connectivity and try again"); 
}

0 commentaires

0
votes

Je suis juste en train de fusionner quelques réponses ici, mais je voulais quelque chose qui a répondu aux événements en ligne / hors ligne, mais je savais également au début s'il y avait une connexion Internet. J'utilisais cela dans un contrôleur angulaire qui diffusait des changements d'état, mais j'ai supprimé ces pièces de simplicité.

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    var _curStatus = false;

    function toggleStatus(newVal) {
        console.log('Setting internet connection state to: ' + newVal);
        _curStatus = newVal;
        // My angular $broadcast went here
    }

    var conType = navigator.network.connection.type;
    toggleStatus((conType != Connection.NONE) && (conType != Connection.UNKNOWN));
    document.addEventListener("online", function() {toggleStatus(true);}, false);
    document.addEventListener("offline", function() {toggleStatus(false);}, false);
    }
}


0 commentaires

0
votes
<script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        checkConnection();
    }

        function checkConnection() {
            var networkState = navigator.connection.type;

            if(navigator.connection.type == Connection.NONE) {        
        alert("No network connection.Please turn it on");
    }
        }

    </script>

0 commentaires