1.1.2 • Published 7 years ago

wx-sdk-promisify v1.1.2

Weekly downloads
4
License
ISC
Repository
github
Last release
7 years ago

wx-sdk-promisify

介绍

封装微信jssdk,让其支持promise,并且让每个方法在wx.ready之后再执行。

API

  • register
/**
 * 注册签名
 * @param {string} signatureUrl 获取微信签名的URL地址
 * @param {string} appid  企业号或公众号唯一标识
 * @param {array}  jsApiList 需要调用的API,如: jsApiList = ['getNetworkType', 'previewImage']
 * @param {bool}   debug    true: 微信会alert出API调用情况
 */
wx.register({signatureUrl, appid, jsApiList, debug: true })

/**
 * signatureUrl: 获取签名接口介绍 [get接口]
 * @return {json}
 * {
 *  code: 0, //  normal response
 *  errorMsg: '',
 *  data: {
 *      timestamp,  // 获取signature的timestamp
 *      nonceStr,   // 获取signature的noncestr
 *      signature,  // signature
 *  }
 * }
 */
  • wx 其他API正常调用,返回promise

使用方式

import wx from 'wx-sdk-promisify'
const domain = 'http://domain/signature'
const agentid = 1000001
const appid = 'testappid'
const url = location.href.split('#')[0]
const signatureUrl = `${domain}?appid=${appid}&agentid=${agentid}&url=${url}`
const jsApiList = ['getNetworkType', 'previewImage']
wx.register({signatureUrl, appid, jsApiList, debug: true })

const testWx = async () => {
  const {networkType} = await wx.getNetworkType()
  await wx.previewImage({current, urls})
}
textWx()

比较

  • example1
// before
wx.ready(function() {
  wx.getNetworkType({
      success: function (res) {
          var networkType = res.networkType; // 返回网络类型2g,3g,4g,wifi
          //...
      }
  });
})

// promisify
const {networkType} = await wx.getNetworkType()
  • example2
// before
wx.ready(function() {
  wx.previewImage({
    current: '', // 当前显示图片的http链接
    urls: [] // 需要预览的图片http链接列表
  });
})

// promisify
await wx.previewImage({current, urls})

Build Setup

  • develop: make dev
  • build: make build
  • publish: make publish

附录

微信开发文档

API list

其中注释掉的部分是微信官方 js-sdk 暂未支持的方法

  'checkJsApi',
  'openEnterpriseChat',
  'onMenuShareAppMessage',
  // 'onMenuShareWechat',
  'chooseImage',
  'uploadImage',
  'downloadImage',
  'stopRecord',
  'onVoicePlayEnd',
  'uploadVoice',
  'downloadVoice',
  'getNetworkType',
  'getLocation',
  'scanQRCode',
  'onVoiceRecordEnd',
  // 'selectEnterpriseContact',
  'startRecord',
  'playVoice',
  'pauseVoice',
  'stopVoice',
  'previewImage',
  // 'previewFile',
  'openLocation',
  // 'onHistoryBack',
  'hideOptionMenu',
  'showOptionMenu',
  'hideMenuItems',
  'showMenuItems',
  'hideAllNonBaseMenuItem',
  'showAllNonBaseMenuItem',
  'closeWindow',
  // 'chooseInvoice'
1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago