生成二维码
在找了一圈文章后发现需要使用wxacode.getUnlimited 来生成
才能实现圆形二维码
接下来看实现图
实现起来其实是比较简单的.
wxml
<view>
<button bindtap="createQRCode">生成二维码</button>
</view>
index.js
里面实现
createQRCode() {
wx.cloud.callFunction({
name: 'createQRCode',
data: {
openid: 1,
id: 2
}
}).then(res => {
console.log(res)
let fileManager = wx.getFileSystemManager()
let filePath = wx.env.USER_DATA_PATH + '/qr.jpg'
console.log('filePath', filePath)
fileManager.writeFile({
filePath: filePath,
encoding: 'binary',
data: res.result.buffer,
success: (res => {
console.log(res)
console.log(filePath)
wx.hideLoading()
this.setData({
img: filePath
})
})
})
})
}
云函数实现
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.wxacode.getUnlimited({
"path": 'page/index/index?id='+event.id+'&openid='+event.openid,
"width": 280,
"isHyaline":true,
"scene": 'a=1',
"checkPath": true, //设置透明底色
"envVersion": 'release'
})
return result
} catch (err) {
return err
}
}
最最最重要的一点就是需要在云文件的config配置权限
{
"permissions": {
"openapi": [
"templateMessage.send"
]
}
}
好了这样就可以实现了. 需要更改其他函数也可以根据文档在修饰下
这是官方文档:
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html