在线和离线事件都会发射两次

Dic*_*art 2 javascript ionic-framework ionic

有人可以帮忙吗?

我试图在我的离子项目中检查互联网连接性何时丢失,它工作正常但事件由于某种原因连续两次触发.下面是我在$ 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');
   });
}
Run Code Online (Sandbox Code Playgroud)

就像我说它可以工作但连续两次触发,所以当我想在互联网连接丢失时显示一个弹出窗口,它会显示两次.

我检查了离子论坛,找到了一个有类似问题的人,但没有人给他一个确切的答案:http://forum.ionicframework.com

Sha*_*dge 7

这是使用状态虚拟var的变通方法

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');
   });
}
Run Code Online (Sandbox Code Playgroud)