微信 SDK 使用步骤

2021-04-09  本文已影响0人  酷酷的凯先生

前言

现在有很多应用需要调用微信的功能,如公众号、小程序、app以及h5通常会用到微信的支付、扫码或者是获得用户信息等操作。这时就需要用到微信的第三方API--微信SDK ( 官方文档 可以看这里 ) 。
到底怎么再项目中使用呢?今天我们来一起看下,揭下这神秘的面纱。

使用步骤

第一步:引入 JS 文件
在需要调用 JS 接口的页面引入 http://res.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)
当上述资源不可访问时可访问 http://res2.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)。
上述两种方式都支持使用 AMD/CMD 标准模块加载方法加载。
引入后就可以用 wx. 访问所有接口,如 wx.config 配置接口。

第二步:权限验证
权限验证需要用到 wx.config ,具体代码如下:

wx.config({
  debug: true, // 开启调试模式
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

注意:
debug: true: 调用的所有api的返回值会在客户端alert出来,
若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印

第三步:验证结果
wx.config 接口信息验证后会执行 ready 方法,所有接口调用都必须在 config 接口获得结果之后。
config是一个客户端的异步操作,一般分如下两种操作

  1. 如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。
wx.ready(function(){
    // 页面加载时,调起微信扫一扫
    wx.scanQRCode({
        needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
        scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
        success: function (res) {
            var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
        }
    });
})
  1. 对于用户触发时才调用的接口,则可以直接调用,不需要放在 ready 函数中。
<btton onClick="chooseImgHanlde" > 选图片</button>

function chooseImgHanlde(){
    wx.chooseImage({
        count: 1, // 默认9
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
        success: function (res) {
            var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
        }
    });
}

校验失败时也会有对应的接口:wx.error
config 信息验证失败会执行error函数,如签名过期导致验证失败。
具体错误信息可以打开configdebug模式查看,也可以在返回的res参数中查看。
对于SPA可以在这里更新签名。

wx.error(function(res){
    // To Do
});

第四步:统一接口配置
所有接口通过wx对象(也可使用·jWeixin·对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数:

  1. success:接口调用成功时执行的回调函数。
  2. fail:接口调用失败时执行的回调函数。
  3. complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。
  4. cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。
  5. trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。

备注:不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回。

以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性errMsg,其值格式如下:

调用成功时:"xxx:ok" ,其中xxx为调用的接口名
用户取消时:"xxx:cancel",其中xxx为调用的接口名
调用失败时:其值为具体错误信息

第五步:检验接口
判断当前客户端版本是否支持指定JS接口:

wx.checkJsApi({
  jsApiList: ['chooseImage'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
  success: function(res) {
    // 以键值对的形式返回,可用的api值true,不可用为false
    // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
  }
});
上一篇 下一篇

猜你喜欢

热点阅读