有人可以帮忙吗?
我试图检查我的离子项目中的互联网连接性何时丢失,它工作正常但事件由于某种原因连续两次触发。下面是我在$ ionicPlatform.ready中的app.js中的代码:
if (window.Connection) {
$rootScope.$on('$cordovaNetwork:online', function (event, networkState) {
console.log('We Are Online');
});
$rootScope.$on('$cordovaNetwork:offline', function (event, networkState) {
console.log('We Are Offline');
});
}
就像我说的那样有效但连续发射两次,所以当我想在互联网连接丢失时显示弹出窗口时会显示两次。
我检查了离子论坛,找到了一个有类似问题的家伙,但没有人给他一个确切的答案:http://forum.ionicframework.com
答案 0 :(得分:7)
这是使用状态虚拟变量
的变通方法
var isOnline = true;
if (window.Connection) {
$rootScope.$on('$cordovaNetwork:online', function (event, networkState) {
if(isOnline) return;
isOnline = true;
console.log('We Are Online');
});
$rootScope.$on('$cordovaNetwork:offline', function (event, networkState) {
if(!isOnline) return;
isOnline = false;
console.log('We Are Offline');
});
}

答案 1 :(得分:0)
SharpEdge提供了一个很好的解决方法。
您还可以使用angular的$ watch服务来检查布尔值的变化,并且效果非常好。
此外,此链接有两个简洁的解决方法: http://www.yourtechchick.com/cordovanetwork-online-and-offline-events-fired-twice/