如何使用原生Android 2.1浏览器中的javaScript检查与服务器的连接?

Tim*_*imo 2 connection jquery android web-services getjson

我正在构建一个Web应用程序,需要在线或离线时无缝工作.为此,需要能够检查我与服务器的连接.

要支持的主要设备是iphone3 + 4,ipad,带有chrome和Android 2.1+的上网本.

navigator.onLine不完全是我想要的.这是不可靠的,只检查您是否有连接,而不是连接到特定服务器.

我试图jQuery.getJSON在我的服务器上连接ping web服务.这在上网本的chrome中运行良好,但原生android浏览器返回null.Ipod touch根本不做任何事情.

我可以用这个帮助..

Jus*_*ins 5

我不完全了解你的情况,但听起来你应该使用......

$.ajax({
 url: "test.html",
 cache: false,
 async : false,
 error: function(XMLHttpRequest, textStatus, errorThrown) {
        // some error code.
        },
 success: function(html){
          // do something.
        }
});
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/jQuery.ajax/

async:false是使用test.html或任何其他简单文件"阻止"请求(基本上我们只是尝试连接.)您可以使用超时来设置一些短时间段.

然后看看你是否得到错误成功 ...

错误(XMLHttpRequest,textStatus,errorThrown)

请求失败时要调用的函数.该函数传递三个参数:XMLHttpRequest对象,描述发生的错误类型的字符串和可选的异常对象(如果发生).第二个参数的可能值(除了null)是"timeout","error","notmodified"和"parsererror".这是一个Ajax Event.This处理程序不会为JSONP请求调用,因为它们不使用XMLHttpRequest.

如果出现错误,请触发一些功能来处理,如果你收到文件,你就可以了.