Cordova-plugin-network-information无法按预期工作

时间:2017-06-01 08:24:13

标签: android json cordova ionic-framework cordova-plugins

我已经使用CLI为离子项目安装了 cordova-plugin-network-information 。我可以看到插件在项目的根文件夹中的 android.json 文件中引用,也在android平台文件夹中的 cordova_plugin.js 中引用。

cordova_plugin.js:

{
        "id": "cordova-plugin-network-information.network",
        "file": "plugins/cordova-plugin-network-information/www/network.js",
        "pluginId": "cordova-plugin-network-information",
        "clobbers": [
            "navigator.connection",
            "navigator.network.connection"
        ]
    }

android.json:

"cordova-plugin-network-information": {
            "PACKAGE_NAME": "com.ionicframework.fts1243245"
        }

我尝试在ionic ready中调用 window.Connection

$ionicPlatform.ready(function() {
      if(window.Connection){
          if(navigator.connection.type == Connection.NONE){
              $ionicPopup.confirm({
                  title:"Internet Disconnected",
                  content:"The internet is disconnected on your device."
              })
              .then(function(result){
                  if(!result){
                     ionic.Platform.exitApp();
                  }else{
                      ionic.Platform.exitApp();
                  }
              });
          }
      }
}

但是,window.Connection返回未定义

任何人都可以让我知道出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

This answer

这表明$ ionicPlatform.ready可以在Cordova的onDeviceReady()之前运行,它可以完美地解释你所看到的内容 - 这个答案提供了一些缓解这一点的选项。我最简单的想法是从onDeviceReady()运行退出代码(如果你可以放心地假设它将在$ ionicPlatform.ready之后触发)。

如果你没有感到高兴,那么:

  1. 将您在$ ionicPlatform.ready中运行的所有预备代码移动到一个独立的函数中。
  2. 在$ ionicPlatform.ready()和onDeviceReady()中设置标志,并检查每个标志是否已设置,然后运行预备功能