import { Injectable } from '@angular/core'; import {HttpClient} from "@angular/common/http"; import {AlertController, App, Events, LoadingController, Platform} from "ionic-angular"; import {HTTP} from "@ionic-native/http"; @Injectable() export class MyProvider { myMethod() { console.log("I'm afraid I can't do that."); } _address = ":9997"; constructor(public httpClient:HttpClient,public alertCtrl:AlertController,public app:App, public loadingCtrl:LoadingController,public events:Events,private nativeHttp: HTTP,public platform:Platform ){} debug = ""; port = "9997"; public getUrl(){ let address =""; // if(this.port =="9998"){ // localStorage.setItem("ipAddress","http://weiapp.pw") // // localStorage.setItem("ipAddress","http://113.229.123.104") // localStorage.setItem("port",":9998") // }else if(this.port =="9997"){ localStorage.setItem("ipAddress","http://weiapp.pw") // localStorage.setItem("ipAddress","http://113.229.123.104") localStorage.setItem("port",":9997") // } // localStorage.setItem("ipAddress","http://sulixin.qicp.vip") // // localStorage.setItem("ipAddress","http://113.229.123.104") // localStorage.setItem("port",":80") address = localStorage.getItem("ipAddress")+localStorage.getItem("port");//外网 测试 localStorage.setItem("address",address); let strUrl = address+"/contract"; return strUrl; } public postData (url:string,body:any,successCallback,isLoading?:any,errorCallback?:any){ let loading = this.loadingCtrl.create({ content:"请等待...", // duration:5000 }); if (isLoading){ loading.present(); } let headers = new Headers(); headers.append('Content-Type','application/x-www-form-urlencoded;charset=UTF-8'); headers.append('type','app'); // alert(this.platform.is("mobileweb")) if (!this.platform.is("mobileweb")){ this.nativeHttp.setDataSerializer('urlencoded'); this.nativeHttp.post(url, body, {type:"app"}) .then(data => { if (isLoading){ loading.dismiss(); } // if(data.data.toString().indexOf("login.jsp")){ // this.errorCallback( "登录超时,请重新登录"); // this.events.publish("toLogin") // return; // } let res = JSON.parse(data.data); if(successCallback){ if(res["success"]=="true"||res["success"]=="success"||res["success"]){ successCallback(res); // alert("success") }else{ if (res['msg'] == "-2"){ this.errorCallback( "登录超时,请重新登录"); this.events.publish("toLogin") // if (localStorage.getItem("userCode")){ // this.postData(this.getUrl()+"/api/v1/login/login.do", {userCode:localStorage.getItem("userCode"),password:localStorage.getItem("password")},(data)=>{ // this.postData(url,body,successCallback,false,errorCallback) // }, false) // } }else { if (errorCallback){ errorCallback(res['msg']); } else { this.errorCallback(res['msg']); } } } } }) .catch(error => { if (isLoading){ loading.dismiss(); } let errMsg = "网络通信异常"; switch (error.status) { case 401: errMsg = "登录超时,请重新登录"; break; case 404: errMsg = '抱歉,后台服务找不到对应接口'; break; case 0: errMsg = '网络无法连接'; default: break; } if (errMsg!=""){ if (errorCallback){ errorCallback(errMsg); } else { this.errorCallback(errMsg); } } }) } else { let options ={ headers: {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8', 'type':'app'}, withCredentials: true } this.httpClient.post(url,body,options).subscribe( (res)=>{ console.log(res) if (isLoading){ loading.dismiss(); } if(successCallback){ if(res["success"]=="true"||res["success"]=="success"||res["success"]){ successCallback(res); }else{ if (res['msg'] == "-2"){ this.errorCallback( "登录超时,请重新登录"); this.events.publish("toLogin") // if (localStorage.getItem("userCode")){ // this.postData(this.getUrl()+"/api/v1/login/login.do", {userCode:localStorage.getItem("userCode"),password:localStorage.getItem("password")},(data)=>{ // this.postData(url,body,successCallback,false,errorCallback) // }, false) // } }else { if (errorCallback){ errorCallback(res['msg']); } else { this.errorCallback(res['msg']); } } } } },(err)=>{ if (isLoading){ loading.dismiss(); } let errMsg = "网络通信异常"; switch (err.status) { case 401: errMsg = "登录超时,请重新登录"; break; case 404: errMsg = '抱歉,后台服务找不到对应接口'; break; case 0: errMsg = '网络无法连接'; default: break; } if (errMsg!=""){ if (errorCallback){ errorCallback(errMsg); } else { this.errorCallback(errMsg); } } } ); } }; private transformRequest(obj){ var str=[]; for (var s in obj){ str.push(encodeURIComponent(s)+"="+encodeURIComponent(obj[s])) } return str.join("&"); } private errorCallback(msg){ let alertCtrl = this.alertCtrl.create({ title:msg }); alertCtrl.present(); } }