离子2:离线HTTP获取请求

时间:2017-01-18 14:13:00

标签: http ionic-framework ionic2

我目前正在加载从randomuser.me api随机抽取的人员列表。 当我关闭互联网连接时,我只是得到net::ERR_INTERNET_DISCONNECTED error。 在"没有互联网" case我想以某种方式保存http get请求,当连接再次打开时,自动调用已保存的请求。那可能吗 ? 希望我足够清楚。

由于

1 个答案:

答案 0 :(得分:2)

您可以使用网络插件。更多信息here

例如:

1 - 创建服务以检查连接并将其添加到app.module.ts提供程序,以便您可以从任何地方访问它:

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

@Injectable()
export class ConnectivityService {
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;
    }
}
}

2-你的.ts文件

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

//service
import { ConnectivityService } from '../../providers/connectivity.service';

@Component({
  templateUrl: 'page.html',
})
export class Page {
constructor(
private nav: NavController,
private cs: ConnectivityService
) {}

 onCallAPI() {
   if (this.cs.isOnline()) {
    //do somthing
   }
 }
}

3-最后,如果您需要检查设备再次联机,则需要添加连接侦听器。