使用PhoneGap / Cordova并检测用户是否实际连接到网络

时间:2015-11-18 19:14:06

标签: cordova phonegap-plugins

我们正在将Cordova用于混合项目。我们遇到了一个问题,如果设备/应用程序看到WiFi网络,但WiFi网络需要身份验证或接受他们的条款和条件(最常见于咖啡馆,酒店等)。

PhoneGap / Cordova只看到WiFi网络,因此检查网络实际上是不可靠的,因为应用程序正在看网络,用户只是没有登录以从应用程序获取远程数据。

有没有人处理过此事或处理过这些类型的情况?您是如何处理或解决问题的?任何代码片段?

2 个答案:

答案 0 :(得分:2)

我不认为有这个插件。

如果您依赖特定的后端服务器:

仅仅检查设备是否在线可能是不够的,因为服务器(无论出于何种原因)可能处于脱机状态。

所以我最终得到了一个RESTful服务,如(node.js / express):

app.get('/', function(req, res) {
    res.jsonp({status: 'OK'});
});

只是返回“OK”并在几种情况下检查连接。

如果您只是需要知道自己是否在线:

在这种情况下,我会检查一些普遍可用的网站,看看是否可以访问它。也许cordova-plugin-inappbrowser可能对此有所帮助,因为它可以在后台加载网站并报告错误(如果有的话)。

答案 1 :(得分:0)

如果该应用在线,请打开已知网址的HEAD请求。如果请求有效,那么您已全部设置完毕。如果失败,则用户可能在强制门户中。