Cordova,如何准确离线检测

时间:2018-03-15 21:20:42

标签: javascript ajax cordova offline

我正在寻找一种方法来检测

  1. 手机离线,没有数据或无线网络

  2. 手机在线,但是在没有登录的情况下阻止访问的路由器(如酒店,免费wifi热点等)

  3. 手机已联机,但服务器已离线

  4. 使用cordova网络信息很容易 2号和3号更难。我可以将ajax作为心跳发送到我们的服务器进行测试,但这无法区分情况2和3。

    我能准确测试情况2和3的方法是什么?

    我的第一个想法是在谷歌上搜索某些内容以检查情况2,如果2次通过,则检查3.这听起来是个好主意吗?

    由于

1 个答案:

答案 0 :(得分:0)

我之前接触过的方法是将AJAX发送到我的服务器,如您所建议的那样 - 发送给返回已知响应的端点。然后在您的应用中测试此响应。

如果发生下列情况之一,您就是一个强制门户网站:

  • 响应成功(即2xx代码),但与预期不符
  • 您收到ssl证书不匹配错误
  • 您收到意外的404,301或302回复

如果您收到连接错误,则很可能是您的服务器已关闭。

最后,如果您收到DNS解析错误,那么它很可能是上述两者之外的连接问题(例如,您连接的网络根本没有外部互联网连接),但可能您的DNS服务器已关闭。

当然,所有这些都假设您有一些联系(即问题中没有第1点)。最后,请确保您正常处理任何其他异常。