Ionic 2 - 检查每个请求的Internet连接

时间:2016-05-24 19:59:11

标签: android cordova ionic2

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

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

为此我使用了cordova插件网络信息。来自离子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(()不会检索任何内容。这是实现目标的最佳方式吗?

1 个答案:

答案 0 :(得分:2)

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

订阅和取消订阅方法也只监听更改以检查连接,直接使用比较代码。

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

让我知道它是否有效。