10

通过我的网络应用程序检测我的手机是否有互联网连接的最佳方法是什么?

4

5 回答 5

22

这不需要任何代码——它是 HTML5 API 的一部分。window.navigator.onLine检查--的值,false如果用户离线。

http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#browser-state

于 2011-04-12T16:32:47.240 回答
4

一个选项可能是更改 Ajax 设置以添加特定的timeout.,然后添加一个处理程序来error查找.textStatus'timeout'

发生超时时,互联网连接不稳定或您的站点已关闭。


使用ajaxSetup为所有请求设置选项默认值:

$.ajaxSetup({
    timeout: 1, // Microseconds, for the laughs.  Guaranteed timeout.
    error: function(request, status, maybe_an_exception_object) {
        if(status != 'timeout')
            alert("YOU BROKE IT");
        else
            alert("OH NOES TEH INTARWEBS ARE DOWN!!!!!1one");
    }
});
于 2011-04-11T20:29:34.917 回答
2

在简单的 JS 代码中可以做到这一点,因为所有功能设备都不支持 JS 但是对于基于 Web 的应用程序,这是非常少的代码使用

online = window.navigator.onLine;
if (navigator.onLine) {
  alert('you are online');
} else {
  alert('you are offline');
}
于 2014-02-24T13:54:28.313 回答
1

如果您想每 X 秒检查一次连接。

        $(document).ready(function() {
            setInterval(function(){
                var isOnline = navigator.onLine;
                if (isOnline) {
                    console.log("Connected");
                }
                else {
                    console.log("Not Connected");
                }
            }, 30000); // 10000 = 10 seconds, check for connection every 30 seconds
        });
于 2016-03-14T14:05:11.640 回答
-1

如果你想要比 window.navigator.onLine 更具兼容性、可靠性和可定制性的东西,试试我的 jQuery 插件:http ://tomriley.net/blog/archives/111

于 2012-07-02T00:04:20.753 回答