【问题标题】:Ionic 2 - Check Internet Connection on each requestIonic 2 - 检查每个请求的 Internet 连接
【发布时间】:2016-05-24 19:59:10
【问题描述】:

我正在 Ionic 2 上开发一个应用程序,我想检查每个请求的互联网连接,即,我想在每次网络关闭或启动时接收即时消息。

我的简单项目将有:
第 1 页 - 主页(转到另一页的按钮)
第 2 页 - 另一页

为此,我正在使用 cordova 插件网络信息。来自 ionic 2 文档:

import {Network, Connection} from 'ionic-native';

// watch network for a disconnect
let disconnectSubscription = Network.onDisconnect().subscribe(() => {
  console.log('network was disconnected :-( ')
});

// stop disconnect watch
disconnectSubscription.unsubscribe();


// watch network for a connection
let connectSubscription = Network.onConnect().subscribe(() => {
  console.log('network connected!');    
  // We just got a connection but we need to wait briefly
    // before we determine the connection type.  Might need to wait    
  // prior to doing any api requests as well.
  setTimeout(() => {
    console.log(Network.connection);
    if (Network.connection === Connection.WIFI) {
      console.log('we got a wifi connection, woohoo!');
    }
  }, 3000);
});

// stop connect watch
connectSubscription.unsubscribe();

问题是 Network.onConnect().subscribe(() 不检索任何内容。这是实现我目标的最佳方式吗?

【问题讨论】:

  • 只是作为评论,根本不是答案,我认为网络插件对于这种检测并不真正可靠,因为您的用户实际上可能连接到没有连接的路由器并且仅因为有 wifi 链接处于活动状态,插件才会指示存在有效连接。我也在努力解决这个问题。

标签: android cordova ionic2


【解决方案1】:

您的代码的问题是您在订阅网络更改后调用取消订阅方法。如果您致电connectSubscription.unsubscribe(),您是在告诉 ionic,您现在不关心网络连接状态的变化。删除 2 个取消订阅方法,您的代码应该没问题。

另外 subscribe 和 unsubscribe 方法只监听变化,所以要检查连接,直接使用比较代码。

if (Network.connection === 'wifi') {
    // do some api work
}

让我知道它是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    相关资源
    最近更新 更多