2 votes

Gestion des requêtes ajax lorsqu'il n'y a pas de réseau disponible et que le wifi est désactivé sur Android

Je développe une application Android en utilisant phonegap. Tout fonctionne bien comme demande/réponse, maintenant je dois gérer la situation quand aucun réseau 3G n'est disponible et que le wifi est désactivé, dans ce cas ma requête jquery ajax() ne fait rien, elle n'arrive même pas dans le gestionnaire d'erreur. J'ai mis un timeout de 10 secondes.

Quelqu'un peut-il me dire ce qui ne va pas avec la requête ajax ? Pourquoi le gestionnaire d'erreur n'est-il pas appelé ?

Remerciements

3voto

Anriëtte Myburgh Points 2917

Vous pouvez toujours faire un test au préalable, avant d'appeler $(document).ready() et de donner à une variable la valeur false :

var is_online = false;

if (navigator.onLine(connected)) {
    is_online = true;
}

Vous pouvez ensuite tester cette variable dans votre $.ajax() demande.

Vérifier ceci Question de Stack Overflow .

2voto

fil maj Points 2020

Utilisez la fonction API réseau pour tester l'état actuel de la connectivité réseau sur l'appareil. Voici l'exemple tiré de la page de documentation mentionnée ci-dessus :

function reachableCallback(reachability) {
  // There is no consistency on the format of reachability
  var networkState = reachability.code || reachability;

  var states = {};
  states[NetworkStatus.NOT_REACHABLE]                      = 'No network connection';
  states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
  states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK]         = 'WiFi connection';

  alert('Connection type: ' + states[networkState]);
}

navigator.network.isReachable('phonegap.com', reachableCallback);

J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X