检测电话间隙的网络变化

时间:2015-03-24 14:03:52

标签: jquery cordova phonegap-plugins

我有一种情况,如果用户从一个网络登录 - >进入主屏幕 - >切换网络。如果他切换网络我必须运行一个特定的场景,下面是我来的蓝图用。

如果用户从一个网络登录,我将ip地址存储为a1.b1.c1.d1。和 如果用户切换到另一个网络,我将IP地址存储为a2.b2.c2.d2

我可以将a1与a2进行比较,告诉我已经切换了网络。这是正确的做法吗?

由于

1 个答案:

答案 0 :(得分:0)

我已经开发了一个插件,可能会对此有所帮助(不确定在网络接口发生变化时是否会在所有情况下都引发事件,确保互联网可达性发生变化时):

https://github.com/appfeel/connectivity-monitor-cordova

function onDeviceReady() {
  var myHostToObserve = "www.appfeel.com";

  document.removeEventListener('deviceready', onDeviceReady, false);
  document.addEventListener(connectivity.events.onReachabilityChanged, onReachabilityChanged, false)
  connectivity.observeRemoteHostName(myHostToObserve);
}

function onReachabilityChanged(e) {
  console.log(e.interface);
  swich(e.interface) {
    case connectivity.DISCONNECTED:
      console.log('DISCONNECTED');
      break;
    case WIFI:
      console.log('WIFI');
      break;
    case WIMAX:
      console.log('WIMAX');
      break;
    case ETHERNET:
      console.log('ETHERNET');
      break;
    case MOBILE:
      console.log('MOBILE');
      break;
    case UNDEFINED:
      console.log('UNDEFINED');
      break;
  }

  if (e.connected) {
    console.log("Is connected");
  } else {
    console.log("Is not connected");
  }

  swich(e.observer) {
    case HOST:
      console.log('HOST');
      break;
    case INTERNET:
      console.log('INTERNET');
      break;
    case LOCALWIFI:
      console.log('LOCALWIFI');
      break;
  }
}