离子2中的线程

时间:2017-02-06 13:01:44

标签: typescript ionic-framework ionic2 ionic-native

我正在尝试创建一个线程来继续检查应用程序的网络状态,以便它可以发送到我的远程数据库。如何使用Ionic-native在离子2中处理此问题。

最好的问候

2 个答案:

答案 0 :(得分:0)

首先,您需要安装网络插件

ionic plugin add cordova-plugin-network-information

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

}

现在你可以在任何你喜欢的地方使用它

答案 1 :(得分:0)

如果你这样做:

this

您将能够注册随Ionic 2应用程序提供的service-worker.js。

在这里,您可以找到有关服务工作者如何工作的更多文档:

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

你可能需要结合@armin和这个的响应。

安装:

ionic plugin add cordova-plugin-network-information

然后:

  1. 注册您的service-worker.js
  2. 在您的内部创建活动 服务工作者会打你的服务器。
  3. 玩这样的东西(这个代码需要添加到你的离子应用程序中,而不是你的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.
    });
    

    我认为你想要这样的东西。