更新记录
1.0.3(2020-04-15)
更新finally指定可用版本,修改api.js 参数bug
1.0.2(2019-12-04)
分离api文件和config文件,便于维护,
1.0.1(2019-11-06)
新增
查看更多平台兼容性
uni-app
app-vue | app-nvue | app-android | app-ios |
---|---|---|---|
? | ? | ? | ? |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
? | ? | ? | ? | ? | ? | ? | ? | ? |
微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 | 钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|
? | ? | ? | ? | ? | ? | ? | ? | ? |
快应用-华为 | 快应用-联盟 |
---|---|
? | ? |
uni-app x
app-android | app-ios |
---|---|
? | ? |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
? | ? | ? | ? | ? | ? | ? | ? | ? |
flyio
按需安装:
var Fly = require("flyio/dist/npm/wx")//npm install flyio --save
var md5 = require('js-md5');//npm install js-md5 --save
require('promise.prototype.finally').shim() //npm install promise.prototype.finally@3.1.1 --save
前端关键代码
fly.interceptors.response.use(
async function (response) {
// 如果请求报错
if (response.data.code != 10000) {
if(response.data.code == 401){
fly.lock();//锁住请求队列,先执行获取token操作
let code = await wxLogin();
return newFly.get("/wechat/getToken", {code: code}).then((d) => {
//request.headers["token"] = d.data.token;
uni.setStorageSync('token',d.data.token);
}).finally(() => fly.unlock()) //解锁后,会继续发起请求队列中的任务
.then(() => {
console.log(`重新请求:path:${response.request.url},baseURL:${response.request.baseURL}`)
return fly.request(response.request);
})
}
}else{
//只将请求结果的data字段返回
return response.data.data
}
return response;
},
(err) => {
//发生网络错误后会走到这里
return Promise.resolve("网络请求:ERROR!")
}
)
main.js
统一配置:
import Api from './api/api'
Vue.prototype.$api = Api
test.vue
页面调用:
let res = await this.$api.login();
php
后端我是tp写的,需要的私聊我参考: