检查互联网连接不工作

Check connection with internet not working

本文关键字:工作 连接 互联网 检查      更新时间:2023-09-26

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

法典:

<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>

我在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 );
    }
我想

指出,这可能不是最可靠的。此外,您不希望将慢速连接与无连接混淆,因此必须为慢速连接设置长时间的超时属性。我也使用 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应用程序 - 对吗?告诉我这是否对你不起作用。

如果你在 cordova ver>= 3.0.0 中工作,那么首先你需要使用 CLI命令行界面)安装网络连接插件,这些事件由 org.apache.cordova.network-information 添加

  1. 在线
  2. 离线

Cordova插件添加org.apache.cordova.network-information

$(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
}

我看到您正在使用实验性 API,这就是它不起作用的原因。

当您在PhoneGap上进行开发时,您必须添加相应的插件来检索网络信息。

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

在此处查看此插件的详细信息和示例。

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

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" />
        }