我使用Cordova开发智能手机应用程序。
在这个应用程序中,我需要在向服务器发送请求之前检查互联网连接。
为了做到这一点,我使用了Cordova Connection API,但是如果设备连接到没有Internet连接的WIFI网络,则此API说我们有WIFI连接,
有没有办法检查WIFI网络上是否有互联网?
答案 0 :(得分:3)
在发送实际请求之前发送虚假的ajax请求,如果你得到并且错误代码为'0'则表示没有互联网连接。
$.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")
}
}
});
其次,您还可以使用HTML 5导航器
var condition = navigator.onLine ? "ONLINE" : "OFFLINE";
答案 1 :(得分:1)
我没有多少使用过cordova,但我认为它无法识别您是否可以访问互联网,它只是识别您是否连接到网络。
您可以进行解决方法:尝试发送您的请求并捕获失败时收到的错误,从那里您可以告诉用户他没有互联网访问权。
答案 2 :(得分:1)
您可以使用cordova plugin add org.apache.cordova.network-information
添加Connection
功能。 These are the Connection
docs
该插件可以访问window.Connection
。
然后你可以做类似的事情:
if (navigator.connection.type == Connection.NONE) {
alert("you're going to need more internet, brah");
}
您还可以访问其他状态,例如CELL_2G
,CELL_3G
,WIFI
等等。