有人可以帮忙吗?

我试图检查我的 ionic 项目中什么时候失去了Internet连通性,它运行正常,但由于某种原因该事件连续触发两次。以下是我在$ 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');
   });
}

就像我说的那样,它可以工作,但是连续触发两次,所以当我想在互联网连接断开时显示弹出窗口时,它会显示两次。

我检查了 ionic 论坛,发现一个有类似问题的人,但没人能给他一个确切的答案:http://forum.ionicframework.com

最佳答案

这是使用状态虚拟变量的解决方法

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');
   });
}

10-04 12:48