来自@ ionic-native / network的Ionic 3 Network无法返回连接状态

时间:2018-09-27 13:30:07

标签: ionic3 ionic-native

如何在ionic 3应用程序中获取有关Internet连接的信息?

我安装了插件:

$ ionic cordova plugin add cordova-plugin-network-information

$ npm install --save @ionic-native/network

并将import { Network } from '@ionic-native/network';作为提供者添加到应用的模块中

控制台未显示错误, 我在带铬的笔记本电脑上进行了测试。

pages / home.ts

    import { Component } from '@angular/core';
    import { NavController, LoadingController, ToastController } from 'ionic-angular';
    import { RestProvider } from '../../providers/rest/rest';
    import { Network } from '@ionic-native/network';
    import { AlertController } from 'ionic-angular';

    @Component({
      selector: 'page-home',
      templateUrl: 'home.html'
    })

    export class HomePage {

      constructor(
        public navCtrl: NavController, 
        public LoadingController: LoadingController, 
        private rest: RestProvider,
        public  network: Network, 
        public toast: ToastController,
        public alertCtrl: AlertController,

        ) {

          this.network.onConnect().subscribe(()=> {
           console.log('Connected Constructor');
          });

          this.network.onDisconnect().subscribe(()=> {
            console.log('Disonnected Constructor');
          });

        }


      ionViewDidLoad() {

        this.network.onConnect().subscribe(()=> {
          console.log('Connected ionViewDidLoad');
        });

        this.network.onDisconnect().subscribe(()=> {
          console.log('Disonnected ionViewDidLoad');
        });
   }
 }

2 个答案:

答案 0 :(得分:1)

谢谢!!!

是的,我更改了代码

constructor(public toast: ToastController, private network: Network) {
this.network.onConnect().subscribe(()=> {
  this.toast.create({
    message: "DDDD",
    duration:6000
  }).present();
});

this.network.onDisconnect().subscribe(()=> {
  this.toast.create({
    message: "213123",
    duration:6000
  }).present();
});
}

并且可以在设备上运行

但是现在我有另一个问题,

应用程序运行后如何获取连接状态?

(现在我在更改连接后获得状态)

答案 1 :(得分:0)

Cordova插件在浏览器中不起作用。您必须在要测试的设备上运行该应用程序。另外,如果您使用this.network.type,则可以查看设备上的网络类型,但是在浏览器的控制台上,您会收到警告:

  

本机:尝试调用Network.type,但Cordova不可用。确保包含cordova.js或在设备/模拟器中运行。

确认您将无法在浏览器上使用cordova插件。