I use Cordova to develop a smartphone application.
In this app, I need to check the internet connection before send request to a server.
In order to do that I use the Cordova Connection API, but in the case that the device is connected to a WIFI network with no Internet connection, this API say that we have WIFI connection,
is there any way to check if internet is available on the WIFI network ?
Send an Dummy ajax request before you send the actual request, If you get and Error Code as '0' it means there is no internet connectivity.
$.ajax({
url: 'TestUrl',
type: 'GET',
success: function (data) {
// Go ahead with you request
},
error: function (x, y, z) {
if (x.status == 0) {
alert("Please connect to the internet");
}
else{
alert("Other Error Occured")
}
}
});
Secondly you can also make you of HTML 5 navigator
var condition = navigator.onLine ? "ONLINE" : "OFFLINE";
I haven't used cordova much, but I think it cannot recognise if you have internet access, it just recognises if you are connected to a network.
You can do a work-around: try to send your request and catch the error you get when it fails, from there you can tell the user that he doesn't have internet access.
You can use cordova plugin add org.apache.cordova.network-information
to add the Connection
feature. These are the Connection
docs.
That plugin will give access to window.Connection
.
Then you can do something like:
if (navigator.connection.type == Connection.NONE) {
alert("you're going to need more internet, brah");
}
You'll also get access to other states, such as CELL_2G
,CELL_3G
, WIFI
, etc...
来源:https://stackoverflow.com/questions/20540150/cordova-checking-wifi-connection-to-internet