Angularjs 在Cordova Ionic框架中检测internet是否工作

Angularjs 在Cordova Ionic框架中检测internet是否工作,angularjs,cordova,phonegap-plugins,ionic-framework,Angularjs,Cordova,Phonegap Plugins,Ionic Framework,我想在cordova Ionic应用程序中internet不工作时显示消息,任何人都可以在Ionic cordova应用程序中执行此操作。有一个从设备获取网络信息的方法。添加 cordova plugin add org.apache.cordova.network-information 将其包含在app.js中,并从ondevicerady事件处理程序中注册脱机事件处理程序 onDeviceReady: function() { document.addEventListener(

我想在cordova Ionic应用程序中internet不工作时显示消息,任何人都可以在Ionic cordova应用程序中执行此操作。

有一个从设备获取网络信息的方法。添加

cordova plugin add org.apache.cordova.network-information
将其包含在app.js中,并从
ondevicerady
事件处理程序中注册脱机事件处理程序

onDeviceReady: function() {
    document.addEventListener("offline", onOffline, false);
},

onOffline: function () {
  //handle offline 
}

嗨,这里还有一个问题。网络信息只告诉您是否存在连接。但这并不意味着你可以连接到一个网站和/或一个正在运行的数据库。在大多数情况下,应用程序取决于网站和/或数据库是否可用。因此,您也必须检查这些内容。

以下是关于爱奥尼亚论坛的一些讨论:

你可以找到很多像这样的。我建议使用ngCordova并执行以下操作:

$rootScope.$on('$cordovaNetwork:online', function() {});
$rootScope.$on('$cordovaNetwork:offline', function() {});
其实很简单。 添加插件:

cordova plugin add org.apache.cordova.network-information
您不需要在index.html中包含任何内容。只需在您使用的控制器上添加$cordovaNetwork。下面的代码片段将与之配套

document.addEventListener("deviceready", function () {
 // Check for network connection
    if(window.Connection) {
    //you can log your connection as well, whether it is internet, wifi and so on.In this case you are checking for no connection
alert(navigator.connection.type);
      if(navigator.connection.type == Connection.NONE) {
        $ionicPopup.confirm({
          title: 'Network Problem',
          content: 'Sorry, Please Check Your Network Connection.'
        })
//or you can simply navigate it to a page with the no internet connection html.
      }
    }
})
//这是一种方式。下一种方法是在要使用的控制器中包含以下代码段。在本例中,不要忘记添加$cordovaNetwork、$ionicPlatform

var type = $cordovaNetwork.getNetwork();

   var isOnline = $cordovaNetwork.isOnline();

    var isOffline = $cordovaNetwork.isOffline();

 $rootScope.$on('$cordovaNetwork:online', function(event, networkState){
      var onlineState = networkState;
      alert(onlineState);
    })

 $rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
      var offlineState = networkState;
       alert(offlineState);
    })

 document.addEventListener("deviceready", function () {

  $rootScope.$on('$cordovaNetwork:online',function(event,networkState){
    $location.path('/japp/login');
  })

 $rootScope.$on('$cordovaNetwork:offline',function(event,networkState){
     $ionicPopup.confirm({
                        title: "Internet Disconnected",
                        content: "The internet is disconnected on your device."
                    }).then(function(){
                                    ionic.Platform.exitApp();
                    })
  })
如果您仍然有问题,请随时询问任何小细节。

安装插件(cordova plugin add org.apache.cordova.network information)后,您可以使用app.js中的以下代码显示警告消息

if(window.Connection) {
  console.log("checking connection");
    if(navigator.connection.type == Connection.NONE) {
      $ionicPopup.alert({
        title: "No Internet Connection",
        content: "Internet Connection is not available. In offline you can see previously fetched data.",
        okType:"balanced",
      })
      .then(function(result) {
          if(!result) {
            console.log('ok clicked');
          }
      });
    }
}

当您搜索“cordova internet plugin”时,这是第一个结果:这是正确的解决方案,但如果您需要另一个解决方案,您可以在启动应用程序时检查互联网是否存在: