【问题标题】:ngCordova: Uncaught ReferenceError: Connection is not definedngCordova:未捕获的 ReferenceError:未定义连接
【发布时间】:2016-08-07 17:56:24
【问题描述】:

试图在我的 Ionic 应用程序中找出这个错误以检查网络连接。我使用的是 ngCordova 的网络工具:

http://ngcordova.com/docs/plugins/network/

ngCordova 声称他们的$cordovaNetwork.isOnline() 函数有效,但我发现恰恰相反。 $cordovaNetwork.getNetwork 似乎工作正常,但除此之外,在代码中执行 console.log($cordovaNetwork.inOnline()); 时出现此错误。

我在其他地方看到过这个问题的答案,但没有一个涉及使用这个函数。它们涉及使用状态数组或“在线/离线”事件。

有人可以解释为什么isOnline() || isOffline() 似乎不起作用吗?如何在没有任何马戏团技巧的情况下相应地使用此功能?我正在通过Android进行调试。我在代码中正确注入并正确执行其他操作。任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 我相信很多cordova插件并不打算在浏览器中使用,必须在模拟器或设备上进行测试
  • 我也试过这样做,但调试起来要困难得多。

标签: javascript networking ionic-framework cordova-plugins ngcordova


【解决方案1】:

为了解决这个问题,我有 2 个解决方法来解决这个问题 1- 在科尔多瓦/服务中。

this.isOffline = function() {
    if (navigator.connection && typeof Connection !== 'undefined') {
        me.offline = $cordovaNetwork.isOffline();
        return me.offline;
    }
    return me.offline;
 };

2- 在 index.html(第一个 js 文件)中包含一个新文件 connection.js,内容如下

var Connection = {
UNKNOWN: "unknown",
ETHERNET: "ethernet",
WIFI: "wifi",
CELL_2G: "2g",
CELL_3G: "3g",
CELL_4G: "4g",
CELL:"cellular",
NONE: "none"
};

这个问题可能还有一个原因,即 ngCordova 在设备准备好之前启动。

【讨论】:

    【解决方案2】:
    console.log($cordovaNetwork.inOnline());
    

    一定是isOnline。这里有错字。是复制粘贴错误还是代码中有这个?

    【讨论】:

    • 我不认为这是错误的,因为我尝试将两种方式都记录到控制台。两者都给出了相同的未捕获引用错误
    • 由于您在通过桌面浏览器运行时无法访问 Cordova 插件,因此您必须使用 navigator.online 进行 webview。
    • 我正在通过 Android 调试
    • 请参阅我的另一篇文章,以确保解决您的问题。 stackoverflow.com/questions/38805050/…
    • 你的其他帖子看起来很合法,但它涉及马戏团技巧,用于 ngCordova 声称提供的 isOnline() 的简单命令
    猜你喜欢
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 2016-11-03
    • 2011-01-05
    • 2016-01-02
    • 2013-10-06
    • 2016-12-17
    相关资源
    最近更新 更多