cordova-plugin-network-information 1.3.0“网络信息”未检测到应用程序何时在线

Posted

技术标签:

【中文标题】cordova-plugin-network-information 1.3.0“网络信息”未检测到应用程序何时在线【英文标题】:cordova-plugin-network-information 1.3.0 "Network Information" not detecting when app is online 【发布时间】:2017-09-25 09:23:14 【问题描述】:

我正在 ionic1 中开发一个 ios 应用程序。 对于网络连接和断开连接,我使用的是 cordova 插件,即 cordova-plugin-network-information 1.3.0 "Network Information"

也是我的 cordova 6.4.0 版

当我启动应用程序并使用凭据登录时,我正在断开 wifi 连接,当时OnOffLine event 被触发,但一段时间后我打开 wifi 时 OnOnLine Event 没有触发。

这是我的代码。

 $scope.onLoad = function () 
        document.addEventListener("deviceready", onDeviceReady, false);
    
function onDeviceReady() 
    document.addEventListener("offline", onOffline, false);
    document.addEventListener("online", onOnline, false);
  

      function onOffline() 
            var alertPopup = $ionicPopup.alert(
                title: 'Connection Failed!',
                template: 'Please check your network is running!'
            );
             console.log('onOFFLINE');
        
        // Handle the online event
        function onOnline()            
            console.log('onONLINE');// here is problem.
        

当我断开 wifi onOffline 事件触发时,onOffline 工作得很好。但是当 wifi 重新连接时,onOnline 事件不会被触发。

【问题讨论】:

对此的任何回复我从过去 2 天开始就被困在这里 【参考方案1】:

尝试使用ngCordova。要安装在 ionic 中,请参阅 link

ngCordova 为您提供了一个围绕实现承诺的插件的角度包装器。

这是来自网络插件here 的 ngCordova 页面的示例。

module.controller('MyCtrl', function($rootScope, $cordovaNetwork) 
  document.addEventListener("deviceready", function () 

    var type = $cordovaNetwork.getNetwork()
    var isOnline = $cordovaNetwork.isOnline()
    var isOffline = $cordovaNetwork.isOffline()

    // listen for Online event
    $rootScope.$on('$cordovaNetwork:online', function(event, networkState)
      var onlineState = networkState;
    )

    // listen for Offline event
    $rootScope.$on('$cordovaNetwork:offline', function(event, networkState)
      var offlineState = networkState;
    )

  , false);
);

【讨论】:

我试过这个解决方案,但它不起作用....nikola-breznjak.com/blog/codeproject/… 你试过诊断插件github.com/dpa99c/cordova-diagnostic-plugin#iswifienabled 此插件是否适用于 2G/3G/4G 等移动网络。或者它仅适用于 wifi 网络

以上是关于cordova-plugin-network-information 1.3.0“网络信息”未检测到应用程序何时在线的主要内容,如果未能解决你的问题,请参考以下文章