post

1.安装插件 http; ionic4 项目目录下先运行

ionic cordova plugin add cordova-plugin-advanced-http

后运行

npm install @ionic-native/http

在./src/app/app.module.ts中增加(...和...中间的内容,两处)

...
import { HTTP } from '@ionic-native/http/ngx';
...

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
  providers: [
  ...
    HTTP,
  ...
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

toast插件同上 命令代码为

ionic cordova plugin add cordova-plugin-x-toast
npm install @ionic-native/toast
import { ToastController } from '@ionic/angular';//这个是代码

新建service文件

ionic g service <目录/文件名>
ionic g service ./providers/commonService //这是我的命令

common.service.ts文件内增加

...
import { HTTP } from '@ionic-native/http/ngx';
import { LoadingController } from '@ionic/angular';//整个是进度遮罩层
import { ToastController } from '@ionic/angular';
...

export class CommonService {

  constructor(
    ...
    private toastCtrl: ToastController,
    private http: HTTP,
    private loadingController: LoadingController, 
    ...
  ) {

  }

...
 /**
     * 显示toast
     * @param data  要显示的内容
     * @param time  显示时间 默认2000毫秒
    */
  public async TOAST(data: string, time?: number) {

    if (typeof (time) == "undefined") {
      time = 2000;
    }

    let toast = await this.toastCtrl.create({
      message: data,
      duration: time,
      position: "middle"
    });
    toast.present();
  }

private async POST(serverUrl: string, uploadData?: any, headers?: any) {
    let temParam: any;

    if (typeof uploadData === 'object') {
      temParam = uploadData;
    } else {
      temParam = {
        json: uploadData,
      };
    }

    const loading = await this.loadingController.create({
      message: '请稍后...',
    });

    await loading.present();

    var promise = this.http.post(serverUrl, temParam, headers);

    promise.then(data => {
      loading.dismiss();

      let tmp = JSON.parse(data.data);

      if (tmp.msg) {
        if (tmp.msg == '证书无效') {
          this.TOAST('账户在其他设备登录,请重试');
          DataService.accessToken = null;
          localStorage.removeItem('accessToken');
          this.router.navigateByUrl('/login');
        }
      }
    }).catch(error => {
      loading.dismiss();
      this.TOAST("网络出错,请检查网络");

    });

    return promise;
  }

 /**
  * 业务网络请求
  * @param business 业务名称
  * @param param 需要携带的参数,可为空
  * @param loadingFlag 为空时显示进度条遮罩层,不为空不显示
  */
  public SEND(business: string, param?: any, loadingFlag?: any, headers?: any) {

    if (param) {
      param.access_token = DataService.accessToken;
    } else {
      param = { access_token: DataService.accessToken };
    }

    if (loadingFlag) {
      return this.NO_LOADING_POST(business, param, headers);
    } else {
      return this.POST(business, param, headers);
    }

  }

  private async NO_LOADING_POST(serverUrl: string, uploadData?: any, headers?: any) {
    let temParam: any;

    if (typeof uploadData === 'object') {
      temParam = uploadData;
    } else {
      temParam = {
        json: uploadData,
      };
    }

    var promise = this.http.post(serverUrl, temParam, headers);

    promise.catch(error => {
      this.TOAST("网络出错,请检查网络");
    });

    return promise;
  }
...
}

调用方式
在相应ts文件中

...
import { CommonService } from '../../providers/common.service';
...

  constructor(
    ...
    private service: CommonService,
    ...
  ) { }

...
let body = {

      
        WAGE: this.WAGE,//工资
        AGENT: this.AGENT,//经办人

        EMP_STATUS: this.EMP_STATUS,//人员状态
        RRC: this.RRC,//户口性质
        P_STATUS: this.P_STATUS,//个人身份
        P_M_STATUS: this.P_M_STATUS,//医疗人员类别
        ALTID: this.ALTID//ALTID
      }

      this.service.SEND(DataService.uplodaAddress, body).then(data => {

        let tmp = JSON.parse(data.data);

        //do what you want
      });
...
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容