繁体   English   中英

科尔多瓦,如何准确地检测离线

[英]Cordova, how to detect offline accurately

我正在寻找一种检测方法

  1. 手机处于离线状态,没有数据或wifi

  2. 电话处于在线状态,但位于路由器后面,该路由器阻止未登录状态的访问(例如酒店,免费wifi热点等)

  3. 电话在线,但服务器离线

使用cordova网络信息可以轻松地编号1,而编号2和3则更困难。 我可以将ajax作为心跳发送到我们的服务器进行测试,但这无法说明情况2和情况3之间的区别。

我怎样才能准确测试情况2和3?

我的第一个想法是在Google上对Ajax进行检查以检查情况2,如果通过2则检查3。这听起来像是个好主意吗?

谢谢

我之前处理此问题的方法是,按照您的建议,将AJAX发送到我的服务器-到将返回已知响应的端点。 然后在您的应用中测试此响应。

如果发生以下情况之一,则说明您位于强制门户网站的后面:

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

如果出现连接错误,则很可能服务器已关闭。

最后,如果您收到DNS解析错误,则很可能是上述两个连接以外的连接问题(例如,您所连接的网络根本没有外部Internet连接),但是您的DNS服务器可能已关闭下。

当然,所有这些都假定您具有某种联系(即,您的问题中未指向第1点)。 最后,请确保您正常处理其他所有异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM