第一步第二步都要必须由后端完成,返回图片地址给前端!原因?如下图:
想了解,想尝试的可以看看:
第一步:获取ACCESS_TOKEN
//这一步前端可以试试请求玩玩,一般由后端获取访问令牌。后端请求微信应用程序接口接口时会用到这个access_Token,前端
再请求会造成重复请求,会使之前的访问令牌过期。
第二步:获取小程序二维码并渲染:
小程序应用程序接口地址
wx。请求({//URL : ' https://API。微信。QQ。com/wxa/getwx代码?access_token=' accessToken,//a//URL : ' https://API。微信。QQ。com/wxa/getwxacodeunlimit?access_token=' accessToken,//b URL : 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token' accessToken,//c method: 'POST ',数据: { ' path ' : '/page/index/index?openid=' openid,//携参数openid 'width': '430' },responseType: 'arraybuffer ',success : function(RES){ console。日志(RES . data)//二维码那个。setdata({二维码: RES . data })},fail : function(RES){ console。日志('失败')})最后结果会出现小程序乱码,(这是个二进制流文件):
解决?
可以利用微信小程序拓展接口,(后台转二进制流也是可以的,后台获取后,直接保存为图片,然后将图片路径返回给前台)。
wx。arraybuffertobase64(arrayBuffer)可以将二进制流转为base64,拓展接口方法地址
//前端请求完整方法:
wx。请求({//URL : ' https://API。微信。QQ。com/wxa/getwx代码?access_token=' accessToken,//a//URL : ' https://API。微信。QQ。com/wxa/getwxacodeunlimit?access_token=' accessToken,//b URL : 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token' accessToken,//c method: 'POST ',数据: { ' path ' : '/page/index/index?openid=' openid,//携参数openid 'width': '430' },responseType: 'arraybuffer ',//arraybuffer是以数组的语法处理二进制数据,称为二进制数组成功:函数(RES){让数据=wx。arraybuffertobase64(RES . data);那个。setdata({ QR码: ' data : image/png;base64,' data }) },fail : function(RES){ console。日志(' fail ')} })wxml文件:
图像src=' { {二维码}}' /这样二维码就可以出现了,
首页获取二维码参数
onLoad:函数(选项){//控制台。日志(选项。OpenID)if(选项。OpenID){ wx。setstorageync(' OpenID ',options.openid) //将信息缓存}}要使用的时候,拿缓存则:让OpenID=wx。getstorage ync(' OpenID ');
如果后端给你传的是base64?
那么恭喜你,本该传图片路径给你.
解决base64图片显示的方法:
var数组=wx。base64 tarraybuffer(RES . data。数据)var base64=wx。arraybuffertbase64(array)if(RES . status code==200){ that。setdata({ QR码: '数据:图像/JPEG;base64 、' base64 、//数据为接口返回的base64字符串})}附:前端请求获取访问令牌与小程序二维码(试试)
wx.request({ //获取令牌网址: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential ',data: { appid: '*** ',//小程序appid secret: '***' //小程序秘钥},成功(RES){//RES . data。access _ token wx。请求({ URL : 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access _ token=' RES . data。access _ token,method: 'POST ',数据: { ' path ' : '/pages/index/index ',' width': 430 },success(RES){ console。日志(RES . data)//后台转二进制流,后台获取后,直接保存为图片,然后将图片路径返回给前台//前端转,如上} }) } })以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。