首先上代码
/**
* 封装uniapp的get请求和post请求
*/
// 引入fly
import flyio from "flyio"
flyio.engine = XMLHttpRequest
export function request(url, data, is_login) {
// 获取手机信息 唯一标识, 安卓 / ios
var type = uni.getSystemInfoSync().platform;
// 判断当前用户是否为登录状态,如果未登录
if (uni.getStorageSync("userToken") == "" && is_login != true) {
uni.showToast({
title: '您当前未登录,可能无法访问绝大部分页面',
duration: 2000,
icon: "none"
});
}
// 判断当前网络状态
uni.getNetworkType({
success: function (res) {
if (res.networkType == "none") {
console.log(res)
uni.showToast({
title: '网络不可用,请检查您的网络',
duration: 2000,
icon: "none"
});
return;
}
}
});
//添加请求拦截器
flyio.interceptors.request.use((request) => {
//给所有请求添加自定义header
request.headers["app-type"] = type;
request.headers["app-version"] = 1;
request.headers["yq-user-token"] = uni.getStorageSync("userToken"); // token(登陆后获取);
request.headers["yq-app-version-code"] = "1.0.0.1"; //小版本号 1.0.0.1;
request.headers["yq-time"] = 2019;
request.headers["X-AjaxPro-Method"] = "ShowList";
request.headers["content-Type"] = "application/json";
return request;
})
return new Promise((resolve, reject) => {
flyio.post("http://192.168.0.133" + url, data == undefined ? '' : data).then(res => {
if (res.code == 200) {
resolve(res.data.data);
} else {
resolve(res.data.data);
}
});
});
}
首先H5是正常请求,真机测试的时候,报下面的错误
Uncaught (in promise) TypeError: this.engine is not a constructor at D:/%E5%89%8D%E7%AB%AF%E9%A1%B9%E7%9B%AE/youqing_App/node_modules/flyio/dist/npm/fly.js:252
请求思路,请求解答,谢谢
seho20001123 (作者)
有没有flyio的demo呢,uniapp的,uni.request这个接口是否存在性能问题,感觉APP请求的很慢
2019-05-06 21:15
DCloud_heavensoft
回复 seho20001123: 幻觉了。在非h5端,uni.request是唯一的、原生的联网方式。其他库都必须基于uni.request封装,用其他库只会比uni.request慢
2020-04-13 22:49