检查与Internet无法正常工作的连接

时间:2014-11-26 15:38:17

标签: javascript android cordova

我正在使用Phonegap开发Android应用。我需要检查一下互联网连接是否真的"如果为false,则显示警告,"否则"重定向到网站。 但是没有工作,似乎应用程序只是忽略了这个"脚本"。

代码:

<head>
<script>
var state = navigator.connection.type;
if (state == window.Connection.NONE)
{
  alert("nao");
}
else
{
  <meta http-equiv="refresh" content="0; url=http://website.com.br/abc" />
}
</script>

4 个答案:

答案 0 :(得分:1)

我在Android / Phonegap应用程序中使用此功能:

function CheckConnection() {
      if(!navigator.network) {
          navigator.network = window.top.navigator.network;
      }
      // return the type of connection found
      return ( (navigator.network.connection.type === "none" || navigator.network.connection.type === null || navigator.network.connection.type === "unknown" ) ? false : true );
    }

答案 1 :(得分:1)

我想指出,这可能不是最可靠的。此外,您不希望将慢速连接与没有连接混淆,因此必须长时间设置超时属性以进行慢速连接。我也使用jquery作为ajax请求,因为javascript会有很多代码,所以请确保你手头有jquery库。首先创建一个php文件来发出请求(我称之为test.php):

<?php
//test.php
echo 'request success';
?>

请求的发起人(检查您的互联网连接):

的Javascript / Jquery的:

<script type="text/javascript">
$.ajax({
    url: "test.php",
    error: function(){
        // will fire when timeout is reached
        alert('no internet');
    },
    success: function(){
        //do something
        //success function do this if the request is a success
    },
    timeout: 30000 // sets timeout to 30 seconds remember you want it to be long to ensure that it isn't just a slow connection
});
</script>

希望这会有所帮助,并且它可能不是最好的方式。我认为java可能有一个方法/类来看看互联网。我也认为你使用java,因为这似乎是一个Android应用程序 - 正确吗?告诉我这是否对你不起作用。

答案 2 :(得分:1)

如果您使用的是 cordova ver&gt; = 3.0.0 ,则首先需要使用 CLI 安装网络连接插件(命令行界面< / em>),由 org.apache.cordova.network-信息

添加的事件
  1. 在线
  2. 离线
  3. cordova插件添加org.apache.cordova.network-信息

    $(document).ready(function() {
       document.addEventListener("offline", onOffline, false);
       document.addEventListener("online", onOnline, false);
    });
    
    function onOffline() {
       // YOUR CODE FOR OFFLINE
    }
    
    function onOnline() {
       // YOUR CODE FOR ONLINE
    }
    

答案 3 :(得分:1)

我发现您使用的是experimental API,这就是为什么它不起作用。

在开发PhoneGap时,您必须添加相应的插件才能检索网络信息。

cordova plugin add org.apache.cordova.network-information 

检查此插件的详细信息和示例here

添加插件后,现在测试网络连接。

var state = navigator.network.connection.type;
        if (state == navigator.network.connection.type)
        {
          alert("nao");
        }
        else
        {
          <meta http-equiv="refresh" content="0; url=http://website.com.br/abc" />
        }