1. 在app.js文件中封装请求的接口
看下方代码:
// 在app.js中:
/**
* @params url: 接口路径
* @params data: 请求参数
* @params success:请求成功的回调
* @params fail:请求失败的回调
* @params opitonnew:扩展参数
*/
App({
// 公共的接口路径, 这里仅为说明不是真正的接口路径
severpath: "http://88.110.112.119:8080",
//请求后台接口数据
request: function (url, data, success, fail, optionnew) {
var option = {
// 拼接成完整的接口地址
url: this.severpath + url,
// 请求的参数
data: data,
// 请求成功后的回调
success: success,
// 请求失败后的回调
fail: fail
};
if (fail == undefined) {
fail = function () {}
} else {
if (typeof (fail) == "object") {
option = this.mergeParam(option, fail);
fail = function () {}
} else {
if (optionnew != undefined) {
option = this.mergeParam(option, optionnew);
}
}
}
wx.request(option)
},
// 将请求的参数进行合并
mergeParam: function (option, noption) {
for (var key in noption) {
option[key] = noption[key]
}
return option;
}
})
注:有些参数是不必要
的,根据个人情况处理吧。
2. 在其他页面中调用:
- 首先在需要使用接口请求的页面中获取
全局对象
:
// 写在 Page 外面,定义为全局变量
var app = getApp()
- 然后在Page中请求接口,如:
Page({
userInfo: function () {
var params = {
id: 1,
type: 1
}
app.request(
// 接口路径与上面的 “severpath: "http://88.110.112.119:8080"”,拼接成一个完整的接口路径
'/company/getCompanyById',
// 请求的参数
params,
// 请求成功后的回调
(res)=> {
console.log(res.data)
},
// 请求失败后的回调
(err)=> {
console.log(err)
})
}
})
- 最后:执行方式,看个人情况可以设置成点击事件的方式也可以在页面加载完成后执行。拿后者简单演示,如下:
onLoad: function (options) {
this.userInfo()
},
注意:
- App() 必须在 app.js 中注册,且只能有一个。
- 不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例。
- 不要在 onLaunch 中调用 getCurrentPages(),因为此时 page 还没有生成。