|
小弟刚学apicloud很多不懂 查了一下判断登录 有个是在config下配置 不登录不给看 于是我封装了一个request 让每次请求前都判断localstorage是否存在用户信息
- /**封装:
- * 调用出自定义显示图标、内容和显示时间
- * @param {*} url 标题 提示信息
- * @param {*} method 提示时间 毫秒为单位
- * @param {*} data 数据
- * @param {*} showProgress 是否显示进度条
- * @param {*} checkLogin 是否检查登录状态
- * @param {*} submissionMode 设置参数提交方式
- * @return{*} 回调函数 返回的是res
- */
- function request(param,callback) {
- //设置默认值 es5中无法在参数中写默认值
- param.method == null ? param.method = 'post' : undefined
- param.data == null ? param.data = '' : undefined
- param.showProgress == null ? param.showProgress = false : undefined
- param.checkLogin == null ? param.checkLogin = true : undefined
- param.submissionMode == null ? param.submissionMode = "values" : undefined //参数提交方式
- //是否显示进度条
- if(param.showProgress){
- api.showProgress({
- style: 'default',
- animationType: 'fade',
- title: '努力加载中...',
- text: '先喝杯茶...',
- modal: false
- });
- }
- //是否认证登录状态
- if(param.checkLogin){
- if($api.getStorage('Userphone') == null){
- customToast(['你还没有登录呢~'], 1000, 'icon-cuowu');
- setTimeout(function() {
- api.openWin({
- name: 'login', //注册
- url: 'widget://html/login.html ',//绝对路径
- pageParam: {
- name: 'test',
- }
- });
- }, 1000);
- return
- }
- }
- //判断提交方式
- switch (param.submissionMode) {
- case '':
- param.data = ''
- break;
- case 'values':
- param.data = {
- 'values':param.data
- }
- break;
- case 'files':
- param.data = {
- 'files':param.data
- }
- break;
- case 'body':
- param.data = {
- 'body':param.data
- }
- break;
- case 'stream':
- param.data = {
- 'stream':param.data
- }
- }
- // {
- // stream:"", //以二进制流的方式提交文件。stream为文件路径(字符串类型),支持绝对路径,以及fs://、cache://、box://等文件路径协议。可直接使用其他端API返回的结果,如api.getPicture回调的ret.data等
- // body:"", //以纯文本的方式提交数据,body支持字符串及JSON对象。提交JSON对象时,需设置application/json类型的Content-Type头
- // values:{}, //以表单方式提交参数(JSON对象), 如 {"field1": "value1", "field1": "value2"} (直接传JSON对像.)
- // files:{} //以表单方式提交文件,支持多文件上传(JSON对象),如 {"file": "path"},也支持同一字段对应多文件:{"file":["path1","path2"]}。文件路径,支持绝对路径,以及fs://、cache://、box://等文件路径协议。可直接使用其他端API返回的结果,如api.getPicture回调的ret.data等.
- // }
- try {
- api.ajax({
- url:param.url,
- method: param.method,
- "cache": true,
- "timeout": 10,
- "headers": {
- "X-APICloud-AppId": "XXXX",
- "X-APICloud-AppKey": "xxxx"
- },
- "data": param.data
- },function(ret, err){
- if (ret) {
- //console.log(JSON.stringify(ret))
- api.hideProgress();
- return callback(ret)
- }else{
- api.hideProgress();
- customToast(['未找到数据'], 2000, 'icon-cuowu');
- return callback({msg:false})
- }
- })
- } catch (err){
- customToast(['捕获未知错误'], 2000, 'icon-cuowu');
- }
- }
复制代码
|
|