Сеть Ionic 3 из @ionic-native/network не возвращает статус подключения

Как получить информацию о подключении к Интернету в приложении ionic 3?

Я установил плагин:

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

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

и добавил import { Network } from '@ionic-native/network'; в модуль приложения в качестве провайдера

Консоль не показывает ошибок, я тестировал ее на ноутбуке с хромом.

страницы/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');
        });
   }
 }

person user3481499    schedule 27.09.2018    source источник


Ответы (2)


Спасибо !!!

Это правда, я изменил свой код

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();
});
}

и это работает на устройстве,

но теперь у меня другая проблема,

как получить статус подключения после запуска приложения?,

(теперь я получаю статус после изменения соединения)

person user3481499    schedule 27.09.2018
comment
Используйте мой ответ, чтобы прокомментировать, и вы можете отредактировать свой исходный вопрос, чтобы не было нескольких ответов. Я обновлю свой ответ, чтобы объяснить. - person Stephen Romero; 27.09.2018

Плагины Cordova не работают в браузере. Вам нужно будет запустить приложение на устройстве для тестирования. Кроме того, если вы используете this.network.type, вы сможете увидеть тип сети на устройстве, но на консоли в браузере вы получите предупреждение:

Собственный: пытался вызвать Network.type, но Кордова недоступна. Обязательно включите cordova.js или запустите на устройстве/симуляторе.

Подтверждение того, что вы не сможете использовать плагины Cordova в браузере.

person Stephen Romero    schedule 27.09.2018