Обработка ajax-запроса, когда сеть недоступна и Wi-Fi отключен на Android - PullRequest
2 голосов
/ 16 февраля 2011

Я разрабатываю приложение для Android, используя телефонный разрыв. Все работает как запрос / ответ, теперь мне приходится обрабатывать ситуацию, когда сеть 3G недоступна и Wi-Fi отключен, в этом случае мой запрос jquery ajax () ничего не делает, даже не обрабатывается обработчиком ошибок. Я поставил тайм-аут на 10 секунд.

Может кто-нибудь сказать мне, что не так с запросом ajax? почему обработчик ошибок не вызывает?

Спасибо

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Вы всегда можете сделать тест заранее, до вызова $(document).ready() и установить переменную в false:

var is_online = false;

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

И затем вы можете проверить эту переменную в вашем запросе $.ajax().

Проверьте это Вопрос переполнения стека .

2 голосов
/ 16 февраля 2011

Используйте PhoneGap's Network API для проверки текущего состояния сетевого подключения на устройстве. Вот пример, взятый со страницы документации, ссылки на которую приведены выше:

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...