Cordova checkConnection并发出警​​告,其中包含"错误"

时间:2014-05-11 21:31:27

标签: networking cordova alert

大家好,我的Android应用程序存在很大问题。我需要运行一些Ajax调用,但首先我想检查连接状态。所以我在我的cordova项目上安装了插件(我认为cordova是3.4.1)然后我在我的JS上添加了这个函数,我在ajax调用之前调用它:

function checkConnection() {

    if(navigator.network.connection.type == Connection.NONE || navigator.network.connection.type ==Connection.UNKNOWN){
       return false;
    }else{
       return true;
    }
}

但是有一个问题:如果我连接了该函数返回TRUE但是如果我禁用WIFI(我只有一个Nexus 7 2013 ONLY WIFI)并且我调用它,那么应用程序会抛出一个带有“error”字符串的警报:(我该如何解决?

2 个答案:

答案 0 :(得分:0)

这是因为如果您关闭WIFI,type的{​​{1}}属性将无法初始化。

我会实施额外的检查:

navigator.network.connection

类似的东西:

if (typeof navigator.connection !== "undefined") 

答案 1 :(得分:0)

由于它是一个移动应用程序,这就是我在项目中定义它的方式,

function hasNetworkConnectivity() {
    try{
        if(navigator.network.connection.type == Connection.UNKNOWN){
            return false;
        }else if(navigator.network.connection.type == Connection.ETHERNET){
            return true;
        }else if(navigator.network.connection.type == Connection.WIFI){
            return true;
        }else if(navigator.network.connection.type == Connection.CELL_2G){
            return true;
        }else if(navigator.network.connection.type == Connection.CELL_3G){
            return true;
        }else if(navigator.network.connection.type == Connection.CELL_4G){
            return true;
        }else{
            return false;
        }
    }catch(e){
        return true;
    }
}