倾听网络变化 - Ionic 2

时间:2018-04-30 13:09:05

标签: angular cordova ionic2 cordova-plugins ionic-native

我需要监控网络更改并在Ionic 2 Mobile应用程序中执行操作。为此,我使用了Ionic的网络模块。

$ ionic cordova plugin add cordova-plugin-network-information
$ npm install --save @ionic-native/network 

但它始终显示一个警告,如

18:29:51]  console.warn: 'Native: tried accessing the Network plugin but it's not installed.
[18:29:51]  console.warn: Install the Network plugin: 'ionic cordova plugin add cordova-plugin-network-information'

但是,在运行应用程序并切换网络时,它无法按预期工作。以下是我的代码

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

    // watch network for a connection
    let connectSubscription = this.network.onConnect().subscribe(() => {
      console.log('network connected!');
      if (this.network.type === 'wifi') {
        console.log('we got a wifi connection, woohoo!');
      }

    });

断开连接时,不执行任何操作。在连接agin时,会触发断开连接侦听器,然后是连接侦听器。下面是控制台。

[18:30:15]  console.log: network was disconnected :-(
[18:30:16]  console.log: network connected!
[18:30:16]  console.log: we got a wifi connection, woohoo!

在少数论坛中,它说这是Ionic 2的一个错误。这是真的吗?如果不是这样,如何监控网络变化。感谢。

2 个答案:

答案 0 :(得分:0)

将代码添加到平台就绪。应用程序运行后

let disconnectnet = Network.onDisconnect().subscribe(() => {
  console.log('you are offline');
  });

let connectnet = Network.onConnect().subscribe(()=> {
 console.log('you are online');
 });

现在断开并连接您的网络,检查您的控制台是否面向网络插件但未安装。问题然后通过使用离子cordova插件rm cordova-plugin-network-information如果此命令不起作用然后你可以手动删除网络插件只需删除cordova netowrk表单config.xml和package.json,并从插件文件夹中删除cordova网络文件夹然后使用ionic cordova插件安装添加cordova-plugin-network-information

答案 1 :(得分:0)

你可能需要删除&再次添加平台。有时Ionic与插件配置/安装处于不一致状态,这通常会解决它。

ionic cordova platform rm <platform>

ionic cordova platform add <platform>