在没有网络可用且在Android上禁用wifi时处理ajax请求

时间:2011-02-16 08:55:32

标签: jquery android ajax error-handling cordova

我正在使用phonegap开发Android应用程序。一切都工作得很好作为请求/响应,现在我必须处理没有3G网络可用并禁用wifi的情况,在这种情况下我的jquery ajax()请求不做任何事情它甚至没有来到错误处理程序。我把超时时间设为10秒。

有人可以告诉我ajax请求出了什么问题吗?为什么错误处理程序没有调用?

由于

2 个答案:

答案 0 :(得分:3)

在调用$(document).ready()并将变量设置为false之前,您始终可以事先进行测试:

var is_online = false;

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

然后,您可以在$.ajax()请求中测试该变量。

选中Stack Overflow question

答案 1 :(得分:2)

使用PhoneGap的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);

希望有所帮助!