2017-02-06 5 views
1

내 원격 데이터베이스로 보낼 수 있도록 응용 프로그램의 네트워크 상태를 계속 확인하기 위해 스레드를 만들려고합니다. 어떻게 이오니아 네이티브를 사용하여 ionic 2에서 이것을 처리 할 수 ​​있습니까?스레드가 이오니아 2

안부

답변

0

먼저 당신이 here

는 다음 네트워크 상태를

import { Injectable } from '@angular/core'; 
import { Platform } from 'ionic-angular'; 
import { Network } from 'ionic-native'; 

@Injectable() 
export class NetworkService { 
onDevice: boolean; 

constructor(
    private platform: Platform, 
) { 
    this.onDevice = this.platform.is('cordova'); 
} 


isOnline(): boolean { 
    if (this.onDevice && Network.type !== 'none') { 
     return true; 
    } else { 
     return navigator.onLine; 
    } 
} 

} 

지금을 확인하기 위해 공급자를 필요로 네트워크 플러그인을

ionic plugin add cordova-plugin-network-information 

MOR 정보를 설치할 필요가 당신 언제 어디서나 그것을 사용할 수 있습니다

+0

나는 그가 여분의 스레드를 얻기 위해 서비스 작업자와 솔루션을 원한다고 생각합니다. –

+0

@camaron, 정확히 말하면 원격 네트워크에 정보를 보낼 수 있도록 네트워크 연결 여부를 계속 듣게 될 서비스 담당자가 필요합니다. 어떻게하는지 알아? 최고 감사합니다 –

+0

@ amar aravavani. 정말 고맙습니다. 서비스 담당자를 통해 추가 스레드를 얻으려면 어떻게해야합니까? –

0

당신이 따르는 경우이 :

https://github.com/GoogleChrome/samples/blob/gh-pages/service-worker/read-through-caching/index.html#L95

당신은 당신의 이온이 응용 프로그램과 함께 제공 한 서비스 worker.js을 등록 할 수 있습니다.

여기서 당신은 서비스 노동자의 작동 방식에 대한 자세한 설명서를 찾을 수 있습니다

https://developers.google.com/web/fundamentals/getting-started/primers/service-workers

당신은 어쩌면 @armin이 하나의 응답의 조합을 할 필요가있다.

설치 : 다음

ionic plugin add cordova-plugin-network-information 

:

  1. 는 서버를 공격됩니다 서비스 노동자의 내부 이벤트를 생성하여 서비스 worker.js
  2. 을 등록합니다. 이 같은 뭔가

재생 (이 코드가 아닌 서비스 worker.js에, 당신의 이온 응용 프로그램의 내부에 추가해야합니다) :

import { Network } from 'ionic-native'; 

//watch network for a disconnect 
let disconnectSubscription = Network.onDisconnect().subscribe(() => { 
    console.log('network was disconnected :-('); 
    // Warn your service worker about this and create a queue or 
    //something to notify your server when you get connection again. 
}); 

//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 
    // Notify to your service-worker.js about this and hit your server. 
}); 

난 당신이 이런 일을한다고 생각합니다.

+0

고마워요. 브라우저의 스레드는 묻지 않고 코드 바를 사용하는 휴대 전화 –

+0

어떻게하면 특정 페이지의 네트워크 상태를 자동으로 또는 1 초 후에 유지할 수 있는지 알려주는 방법입니다. 감사합니다 –

+0

원하는 페이지 안의 ngOnInit 훅의 Network에 구독을 추가하기 만하면됩니다. ngOnDestroy에서 두 구독을 모두 구독 취소하십시오. –