我有一种情况,如果用户从一个网络登录 - >进入主屏幕 - >切换网络。如果他切换网络我必须运行一个特定的场景,下面是我来的蓝图用。
如果用户从一个网络登录,我将ip地址存储为a1.b1.c1.d1。和 如果用户切换到另一个网络,我将IP地址存储为a2.b2.c2.d2
我可以将a1与a2进行比较,告诉我已经切换了网络。这是正确的做法吗?
由于
答案 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;
}
}