const App = getApp(); //获取全局数据
var qts = () => {
  //网络数据请求
  this.request = (url, OBJECT, isload) => {
    //是否开发加载效果
    this.showLoading(isload)
    return new Promise((resolve, reject) => {
      //获取数据
      var defaults = {};
      //合并对象参数
      var datas = Object.assign(defaults, OBJECT);
      my.request({
        url: url,
        method: 'POST',
        headers: {
          "Content-Type": "application/json"
        },
        data: JSON.stringify(datas),
        timeout: 50000,
        dataType: 'json',
        success: (res) => {
          this.hideLoading(isload);
          resolve(res)
        },
        fail: function(res) {
          my.hideLoading();
          if (res.error == 12) {
            this.toast('网络出错');
          } else if (res.error = 13) {
            resolve(res.error)
          } else if (res.error = 14) {
            this.toast('解析失败')
          }
        }
      });
    })
  };
  //提示框
  this.toast = (content, type) => {
    my.showToast({
      type: type == undefined ? "none" : type, //默认空类型
      content: content,
      duration: 2000
    })
  };
  //确认框
  this.confirm = (data) => {
    var obj = data;
    return new Promise((resolve, reject) => {
      my.confirm({
        title: obj.title || '温馨提示',
        content: obj.content,
        confirmButtonText: obj.confirmButtonText || '确定',
        cancelButtonText: obj.cancelButtonText || '取消',
        success: (result) => {
          if (result.confirm) {
            resolve(true);
          } else {
            resolve(false);
          }
        }
      });
    })
  }
  //加载状态
  this.showLoading = (isload, content) => {
    if (isload) {
      my.showLoading({
        content: content === undefined ? '加载中...' : content
      })
    }
  };
  //关闭加载状态
  this.hideLoading = (isload) => {
    if (isload) {
      my.hideLoading()
    }
  };
  //获取手机信息
  this.getSystemInfoPage = () => {
    return new Promise((resolve, reject) => {
      my.getSystemInfo({
        success: (res) => {
          resolve(res)
        }
      })
    })
  };
  //缓存数据
  this.setStorage = (name, datas) => {
    my.setStorage({
      key: name,
      data: datas,
      fail: () => {
        this.toast('缓存失败');
      }
    });
  };
  //获取缓存的数据
  this.getStorage = (name) => {
    return new Promise((resolve, reject) => {
      my.getStorage({
        key: name,
        success: (res) => {
          resolve(res)
        },
        fail: (res) => {
          this.toast('获取缓存失败');
        }
      });
    })
  };
  //清除缓存
  this.removeStorage = (name) => {
    return new Promise((resolve, reject) => {
      my.removeStorage({
        key: name,
        success: () => {
          resolve('success');
        },
        fail: () => {
          this.toast('清除缓存失败')
        }
      });
    })
  };
  //预览图片
  this.previewImage = (currentIndex, arr) => {
    my.previewImage({
      current: currentIndex,
      urls: arr
    })
  };
  //全局参数调用,不建议多用
  this.globalData = () => {
    return App.globalData
  }
  //创建对象的处理
  if (!(this instanceof qts)) {
    return new qts();
  };
};

//定义输出接口
module.exports = {
  qts: qts
}

//使用方法
var qts = require('/utils/qts.js').qts();
qts.request(url, data).then((res) => {});

支付宝小程序通用公共方法封装相关推荐

  1. 微信小程序定义公共方法

    微信小程序定义公共方法还是很简单的,一个三步创建,引入,使用 1.创建 在page创建文件夹utils,在创建文件utils.js,看下我的 在utils.js中定义你的方法,然后导出 2.引入 在你 ...

  2. 原生微信小程序引入公共方法(js文件)@令狐张豪

    我们在写小程序的时候有很多方法是公共调用的,我们可以建一个公共的js文件然后去调用它. 1. 创建utils目录并创建util.js文件 2. 写入我们的公共代码 const baseUrl = 'x ...

  3. 微信小程序动画效果方法封装

    微信小程序的动画如何实现?归纳起来主要有以下几步: 首先在wxml中为需要添加动画的元素绑定动画属性,如下所示: <image animation="{{animationData}} ...

  4. uni-app跨端开发H5、微信小程序、支付宝小程序遇到的坑

    文章目录 微信支付宝小程序通用功能 1.checkbox样式 2.分享功能 支付宝小程序参数 微信小程序参数 其他兼容问题 H5 微信小程序 支付宝小程序 持续更新中... 微信支付宝小程序通用功能 ...

  5. 万里汇WorldFirst支付宝小程序来了,无需安装APP!

    很多朋友一直在问,万里汇WorldFirst有没有手机App?现在的好消息是,万里汇WorldFirst支付宝小程序来了,无需安装APP.一部手机,就能轻松搞定万里汇WorldFirst支付宝快捷注册 ...

  6. 微信小程序 对request方法二次封装

    微信小程序跟支付宝小程序都提供了一个发起 HTTPS 网络请求的方法request,那么为了节省一些操作我们有必要对它进行一个二次的封装 1.在app.js里 配置baseUrl // 注册一个小程序 ...

  7. 支付宝小程序如何在{{}}中使用函数方法

    场景:例如我们在平常开发中会遇到后端返回一些时间.日期.金额等需要我们进行格式化处理的数据,这时候我们就需要在计算属性中写方法到xml中进行使用 首先支付宝小程序到目前为止是还没有计算属性和监听方法的 ...

  8. 微信小程序 请求函数 同步封装方法

    微信小程序 请求函数 同步封装方法 距上回说到,我们使用微信小程序请求函数时,需要多次调用,之前我们封装了一套代码,但是他是异步的,当我们下一个请求函数需要的数据是上一个请求函数得到的时候,就不可以了 ...

  9. 支付宝小程序组件传参,父组件调用子组件方法ref

    组件传参 子组件中 //js中声明 Component({props: {title: "标题", // 支付宝小程序props变量传参不能传对象,设置类型,只能传字符串onCon ...

最新文章

  1. fedora 12下查看pdf不显示乱码的方法
  2. lhgdialog 4.2.0 正式版发布
  3. 改进合作 Git 工作流:自动提取、合并提交
  4. c++中实现域内,左,右对齐的方法
  5. 具备白名单、黑名单的Filter基类扩展
  6. (二)面试前的准备【要知己知彼,不打无准备之仗】
  7. Android之怎么隐藏EditText光标和自动显示键盘
  8. 中国产业数字化发展报告:数智创新,智驱未来
  9. python简单超级马里奥游戏下载大全_Python实现超级玛丽游戏系列教程02玛丽走跑...
  10. 解锁用户及数据库表,锁死进程
  11. perf in linux,[Package Request] 仓库请添加 linux-perf-5.4
  12. 机器学习实战 | 综合项目-电商销量预估
  13. 泛函分析在计算机科学中的应用,泛函分析在小波理论中的应用.doc
  14. 如何使用C语言播放音乐
  15. python 抽奖器_python编写实现抽奖器
  16. Type 和 class 的区别
  17. 51单片机语音声控智能台灯可调光冷暖光人检测锂电池供电太阳能和USB充电
  18. 美通企业周刊 | 亚马逊会员日卖家销售额创新高;宾三得利推出首款全球混合威士忌...
  19. Linux 软件安装目录位置
  20. Uboot sandbox

热门文章

  1. 外贸软件开发哪家靠谱?
  2. fbd2fbs过采样转换问题
  3. 【草稿】教学工作总结——申报校第七届教学质量优秀奖
  4. 汇编语言 CLD指令
  5. ACM的习题1178-自我记录
  6. 设计稿标注首屏线的确定始末
  7. CNN中各参数的意义
  8. 车联网上云最佳实践(二) 1
  9. 给以太坊打了一针强心剂,DeFi能跑出区块链杀手级应用吗?
  10. 国外问卷调查一个月能赚多少? 可以当做副业吗?