2017-02-06 5 views
1

Ich versuche, einen Thread zu erstellen, um den Netzwerkstatus der App zu überprüfen, so dass es an meine entfernte Datenbank senden kann. Wie kann ich das in ionic 2 mit Ionic-native handhaben?Threads in Ionic 2

Mit freundlichen Grüßen

Antwort

0

Zuerst müssen Sie Netzwerk-Plugin

ionic plugin add cordova-plugin-network-information 

mor info here

dann benötigen Sie einen Anbieter zu überprüfen, den Netzwerkstatus

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

} 

jetzt installieren Sie kann es verwenden, wo immer Sie möchten

+0

Ich denke, dass er eine Lösung mit einem Service-Arbeiter will, um diesen zusätzlichen Thread zu bekommen. –

+0

@camaron, genau, ich brauche einen Service-Mitarbeiter, der weiter überwacht, ob es eine Netzwerkverbindung gibt, damit er einige Informationen über eine entfernte Datenbank senden kann. Du weißt wie man es macht? Mit freundlichen Grüßen –

+0

@amin arghavani. Ich danke dir sehr. Wie kann ich einen Service-Mitarbeiter verwenden, um diesen zusätzlichen Thread zu erhalten? –

0

Wenn Sie dies wie folgt vor:

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

können Sie die Service-worker.js registrieren, die mit dem Ionic 2 App zur Verfügung gestellt wurde.

Hier finden Sie weitere Dokumentation finden, wie Service-Mitarbeiter arbeiten:

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

Sie benötigen vielleicht eine Kombination aus der Reaktion von @armin und dies zu tun.

Install:

ionic plugin add cordova-plugin-network-information 

Dann:

  1. Registrieren Sie Ihr Service-worker.js
  2. die Ereignisse erstellen Innere Ihres Service-Arbeiter, die Ihren Server treffen wird.

Spiel mit so etwas wie dieses (dieser Code müssen innerhalb Ihrer ionischen App hinzugefügt werden, nicht in Ihrem Service-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. 
}); 

Ich denke, dass Sie so etwas wie dies wollen.

+0

Vielen Dank. Ich frage nicht über einen Thread im Browser, sondern auf einem Mobiltelefon mit Cordova –

+0

Wie kann ich es so einstellen, dass es den Netzwerkstatus einer bestimmten Seite automatisch oder vielleicht nach 1 Sekunde hält. Danke –

+0

Fügen Sie einfach das Abonnement zu Netzwerk auf dem ngOnInit-Hook innerhalb der gewünschten Seite hinzu. Denken Sie daran, beide Abonnements auf dem ngOnDestroy abzumelden. –