大家好,我的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”字符串的警报:(我该如何解决?
答案 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;
}
}