“在线”事件Phonegap Android未能触发StateChange

时间:2013-10-04 05:28:18

标签: javascript jquery jquery-mobile cordova

我需要在连接互联网时在服务器上传一些数据工作正常但是当互联网断开连接时,我将 localStorage 中的所有数据保存为唯一的 Id 以及互联网时连接再次连接,然后所有那些localStorage数据将在服务器上传。但是现在我的“在线”事件没有解雇,即使我已经从设备关闭我的WIFI然后再次打开WIFI。

document.addEventListener("deviceready",onDeviceReady, false);
         function onDeviceReady() 
{
          alert("device ready");
          checkConnection();
         document.addEventListener("online",callOnlineFunction, false);
}
        function checkConnection() 
{
        network = navigator.network.connection.type;
        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';
        return states[network];
}
 function callOnlineFunction()
{ 
            alert("call onlione function");
           loginOnOnline();
           getDataFromQueue();
}

 function loginOnOnline()
{   
           checkConnection();
}

2 个答案:

答案 0 :(得分:0)

这可能是因为我们对小事情的无知而发生的事情:

您尚未声明状态对象

var states = {};

在使用它来分配值之前。

希望有所帮助。

答案 1 :(得分:0)