Angularjs 网络信息插件Cordova/Ionic的延迟广播

Angularjs 网络信息插件Cordova/Ionic的延迟广播,angularjs,iphone,cordova,ionic-framework,cordova-plugins,Angularjs,Iphone,Cordova,Ionic Framework,Cordova Plugins,嗨,我在这方面进行了很多测试,但无法得到确切的解决方案,所以发布帮助 我的应用程序在Ionic not Ionic2中 网络使用插件是“网络信息”cordova插件网络信息1.3.0“网络信息” 情景: 当用户最小化应用程序并转到后台,关闭WiFi、移动数据等网络源,然后返回应用程序主页时,插件会自动关闭。方法首先为网络返回true,然后在一段时间后得到广播表示现在网络处于脱机状态 预期行为: 应在打开或关闭WiFi、移动数据等网络源时接收广播,以便我可以在应用程序中处理 下面提到了我在app.

嗨,我在这方面进行了很多测试,但无法得到确切的解决方案,所以发布帮助

我的应用程序在Ionic not Ionic2中

网络使用插件是“网络信息”cordova插件网络信息1.3.0“网络信息”

情景:

当用户最小化应用程序并转到后台,关闭WiFi、移动数据等网络源,然后返回应用程序主页时,插件会自动关闭。方法首先为网络返回true,然后在一段时间后得到广播表示现在网络处于脱机状态

预期行为:

应在打开或关闭WiFi、移动数据等网络源时接收广播,以便我可以在应用程序中处理

下面提到了我在app.js中的$ionicPlatform.ready中对网络事件做出响应的广播源代码:

//listen for Online event
        $rootScope.$on('$cordovaNetwork:online', function (event, networkState) 
        {
            console.log("BR got inside online -- App " + networkState);
            $rootScope.isonlineState = true;
            console.log("BR got inside online getNetwork-- App " + $cordovaNetwork.getNetwork());
            console.log("BR got inside online isOnline-- App " + $cordovaNetwork.isOnline());
        })

    // listen for Offline event
    $rootScope.$on('$cordovaNetwork:offline', function (event, networkState) 
     {
        console.log("BR got inside offline  -- App " + networkState);
            $rootScope.isonlineState = false;
        console.log("BR got inside offline getNetwork-- App " + $cordovaNetwork.getNetwork());
        console.log("BR got inside offline isOnline-- App " + $cordovaNetwork.isOnline());
        })
我对这个场景进行了多次调试,但仍然无法仅在iPhone上获得正确的行为

请分享你在这方面的经验,以便帮助我解决这个问题。
提前感谢。

经过几天的努力,我终于发现这个插件除了BrodCastreceiver之外没有其他方法通知您,这很好,但是当在非网络环境下,您的应用程序从后台到前台调用API,然后您会看到您的应用程序页面正在尝试调用API(因为插件方法将isOnline返回为true),但它们不应该返回,因为没有网络,几秒钟后你会收到广播,说你现在离线了

解决方案

因此,最好的方法是从BroadcastReceiver调用从后台到前台的页面更新。调用另一个本地BrodacstReceiver,根据网络事件更新页面

我也在爱奥尼亚论坛上发布了这个问题,但并没有收到任何建设性的回复

希望这有助于其他面临同样问题和需要解决的问题…:)