2017-11-08 12 views
0

私はいつもinternetconnectionが存在するかどうかを確認したいですか?なしインターネットに接続していない場合、ログインページを押し込む方法

subscribingnetworkchangesです。

私の質問:アプリケーションの起動時にインターネット接続を確認したいと思います。それがない場合、私はここnotification

を提示したい私がやっていることです:

をインターネットに接続していないならば、私は

に以下のコードの作品を​​ログインページをプッシュしますperfect on networkchanges私はそれが接続されているかどうか、またはloginPageを押していない状態を検出することができないのですか?

displayNetworkUpdate(connectionState: string){ 
    let networkType = this.network.type; 


    this.toastCtrl.create({ 
     message: `You are now ${connectionState} via ${networkType}`, 
     duration: 3000 
    }).present(); 
    } 




    ionViewDidEnter() { 

     this.network.onConnect().subscribe(data => { 
     console.log(data) 
     this.displayNetworkUpdate(data.type); 
     }, error => console.error(error)); 

     this.network.onDisconnect().subscribe(data => { 
     console.log(data) 
     this.displayNetworkUpdate(data.type); 
     }, error => console.error(error)); 


    } 

上記のコードはnetworkchangesperfectに動作しますが、私はそれがloginPageをプッシュする接続されているか否かの状態を検出することができませんよ?あなたのルートコンポーネントで

答えて

0

offlineイベント

window.addEventListener('offline',()=>{ 
    // your logic 
}); 
+0

を実行するには? please – EaB

+0

これはインターネット接続用のウィンドウイベントです。 – Aravind

1

を監視あなたがしたい最初のページのコンストラクタで以下のメソッドを入れ

https://ionicframework.com/docs/native/network/

import { Network } from '@ionic-native/network'; 

constructor(private network: Network) { } 

if (this.network.type === 'none') { 
    console.log('No connection'); 
} 
+0

@エイブ:私の答えがあなたのために働いていると分かったら、それを承認することができます。 –

0

、このリンクを参照してください打ち上げ切断時にモーダル、トースト、オーバーレイなどのアクティブなポータルを手動で閉じると、他のページ(インターネットのメッセージやログインページがないネットワークのページ)に移動しても、アクティブなポータルは閉じられません。

import {IonicApp } from 'ionic-angular'; 
import { Network } from '@ionic-native/network'; 

私が実装するようにインポートイオンアプリケーションとネットワークが、あなたがこのコードビット説明することができ、以下のコード

this.network.onDisconnect().subscribe(() => { 
     let activePortal = this.ionicApp._loadingPortal.getActive() || 
     this.ionicApp._modalPortal.getActive() || 
     this.ionicApp._toastPortal.getActive() || 
     this.ionicApp._overlayPortal.getActive(); 


     //activePortal is the active overlay like a modal,toast,etc 
     if (activePortal) { 
      activePortal.dismiss(); 
     } 
     this.navCtrl.setRoot(NetworkPage); 
     }); 
関連する問題