微信提供了jssdk,可以实现微信内转发朋友圈,获取位置,录音等功能,使用jssdk首先需要接入,对网页做个验证,当前网页是否符合调用jssdk的要求,验证过程为:
1.网页向后台服务器发送验证请求
2.服务器接收到请求后获取jsapiTicket、timestamp、nonceStr三个参数,然后根据这三个参数获取signature,将timestamp、nonceStr和signature三个参数返回给前端,其中jsapiTicket是通过微信服务器获取的,获取方法看代码,nonceStr是一个随机字符串,可以写死也可以生成,signature生成方法看代码
3.前端收到后台服务器返回的数据后,调用wx.config方法向微信服务器发送请求,判断验证是否通过
4.如果验证通过会回调wx.ready方法,可以将按钮的监听放在wx.ready方法中
验证接入通过后可以调用微信提供的录音方法,录音完成后jssdk提供了播放和上传录音的接口,上传指的是上传到微信服务器,方法执行完毕后返回微信服务器的serverId,开发者可以在自己服务器上访问"https://api.weixin.qq.com/cgi-bin/media/get?access_token=" + accessToken + "&media_id=" + serverId,将语音文件下载到自己的服务器上。
代码
首先在微信公众平台是哪个配置“js安全域名”,配置完成后,此域名下的所有页面均可以接入jssdk
需要在html里引入jssdk相关的js文件:
Index.html
<!DOCTYPE html>
|
Index.js
$(function () { getsignature(); }); var isRecord = true; var localId;//本地保存 var serverId;//上传后返回的服务器id var taskId; //任务id,ajax回调中赋值 var voiceId;//语音id,ajax回调中赋值 function getsignature() { $.ajax({ url: "/getConfig", type: "get", dataType: "json", data: { url: location.href.split('#')[0]}, success: function (result) { wx.config({ debug: false, appId: 'wx51457f1fae702d88', timestamp: result.timestamp, nonceStr: result.nonceStr, signature: result.signature, jsApiList: ['startRecord', 'stopRecord', 'playVoice', 'uploadVoice' |