Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript navigator.onLine不工作cordova 5.0.0_Javascript_Android_Html_Cordova_Phonegap Plugins - Fatal编程技术网

Javascript navigator.onLine不工作cordova 5.0.0

Javascript navigator.onLine不工作cordova 5.0.0,javascript,android,html,cordova,phonegap-plugins,Javascript,Android,Html,Cordova,Phonegap Plugins,我在检查设备是否没有internet连接时遇到问题。我正在使用cordova 5.0.0 CLI。这是我的代码: if(navigator.onLine) { alert("online"); } else { alert("offline"); window.open("404.html"); } 问题是:这总是真的。我怎样才能修好它?我知道这一点,但我甚至不知道如何让它工作。我知道如何添加插件,但后来就结束了。有人能帮我让这个插件工作吗,或者用另一个代码检查用户是否离线?提前感

我在检查设备是否没有internet连接时遇到问题。我正在使用cordova 5.0.0 CLI。这是我的代码:

if(navigator.onLine) {
  alert("online");
} else {
  alert("offline");
  window.open("404.html");
}

问题是:这总是真的。我怎样才能修好它?我知道这一点,但我甚至不知道如何让它工作。我知道如何添加插件,但后来就结束了。有人能帮我让这个插件工作吗,或者用另一个代码检查用户是否离线?提前感谢

Cordova插件在您的web应用程序和移动操作系统的本机API之间架起了一座桥梁。为了使用本机端,您必须等待cordova准备就绪。如果您想检查用户是在线还是离线,可以添加问题中链接的插件,然后按如下方式使用:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
// Now safe to use device APIs
  document.addEventListener("online", onOnline, false);
  document.addEventListener("offline", onOffline, false);
}

function onOnline() {
   // User is Online
}
function onOffline() {
   // User is Offline
}
首先创建一个函数,根据用户是否在线,该函数将返回
true
false

function checkConnection(){
   var networkState = navigator.connection.type;

   var states = {};
   states[Connection.UNKNOWN]  = 'Unknown connection';
   states[Connection.ETHERNET] = 'Ethernet connection';
   states[Connection.WIFI]     = 'WiFi connection';
   states[Connection.CELL_2G]  = 'Cell 2G connection';
   states[Connection.CELL_3G]  = 'Cell 3G connection';
   states[Connection.CELL_4G]  = 'Cell 4G connection';
   states[Connection.CELL]     = 'Cell generic connection';
   states[Connection.NONE]     = 'No network connection';

   if(states[networkState].indexOf("WiFi") != -1 || states[networkState].indexOf("Cell") != -1)
        return true;
  return false;
}
当您获得设备就绪事件时:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
   // Now safe to use device APIs
   var connected = checkConnection();//will return true or false

   if(connected){
      //user is online
   }else{
      //user is offline
   }
}
您还可以直接收听
在线
离线
事件,如:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
// Now safe to use device APIs
  document.addEventListener("online", onOnline, false);
  document.addEventListener("offline", onOffline, false);
}

function onOnline() {
   // User is Online
}
function onOffline() {
   // User is Offline
}

这两种方法都需要添加
网络信息
插件。有关详细信息,请阅读。

将此添加到index.html:

document.addEventListener("offline", function(){ navigator.notification.alert("No connection found") }, false);
如果没有网络连接,它会提醒您

如果您没有通知插件:

document.addEventListener("offline", function(){ alert("No connection found") }, false);

联机并不意味着它在所有设备中都有internet连接。