2017-02-06 16 views
1

Я пытаюсь создать поток, чтобы продолжать проверять сетевой статус приложения, чтобы он мог отправить мою удаленную базу данных. Как я могу справиться с этим в ионной 2, используя Ionic-native.Темы в Ionic 2

С наилучшими пожеланиями

ответ

0

Прежде всего, необходимо установить сетевой Plugin

ionic plugin add cordova-plugin-network-information 

Мор информацию 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; 
    } 
} 

} 

теперь вы может использовать его там, где вам нравится

+0

Я думаю, что он хочет получить решение с сервисным работником, чтобы получить эту дополнительную нить. –

+0

@camaron, в точности, мне нужен сотрудник службы, который будет продолжать слушать, есть ли сетевое подключение, чтобы он мог отправлять некоторую информацию в удаленной базе данных. Вы знаете, как это сделать? С наилучшими пожеланиями –

+0

@amin arghavani. Огромное спасибо. Как я могу использовать сервисного работника для получения этого дополнительного потока? –

0

Если вы будете следовать этому:

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

Вы сможете зарегистрировать сервис-worker.js, которая была предоставлена ​​с приложением Ионные 2.

Здесь Вы можете найти более подробную документацию о том, как работают работники сферы обслуживания:

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

Большое спасибо. Я не спрашиваю о потоке в браузере, но на мобильном телефоне, используя cordova –

+0

. Как я могу поместить его таким образом, чтобы он сохранял статус сети на определенной странице автоматически или, возможно, через 1 секунду. Спасибо –

+0

Просто добавьте подписку на Сеть на крюке ngOnInit, внутри желаемой страницы. Не забывайте отменить подписку на подписки на ngOnDestroy. –