想获取永久的无限制的微信小程序的码,从微信已经拿到了Buffer类型的,但是不知道怎么解析,谁知道怎么搞呢,万分感谢
// 云函数调用微信接口获取小程序码
const result = await uniCloud.request({
url: `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${accessToken}`,
method: 'POST',
data: {
//此处path和page都试过了
page: 'pages/index/index',
// scene: 'id=123',
// page: params.page || '', // 页面路径,如 'pages/index/index'
scene: params.scene || '', // 场景值,如 'id=123&name=test'
width: params.width || 430,
auto_color: params.autoColor || false,
line_color: params.lineColor || {
r: 0,
g: 0,
b: 0
},
is_hyaline: params.isHyaline || false
},
dataType: 'arraybuffer' // 重要:接收二进制数据
});
// 不知道下面方式是转的不对还是啥,前端怎么显示都显示不出来
let imageBase641=Buffer.from(result.data).toString('base64'),
let imageBase64=result.data,
let imageBase642=Buffer.from(result.data, 'binary').toString('base64'),
前端怎么解也不显示
//方式1
let url= 'data:image/jpeg;base64,'+uni.arrayBufferToBase64( res.data.imageBase64)
//方式2
const arrayBuffer = new Uint8Array(res.data.imageBase64)
let url= 'data:image/jpeg;base64,'+uni.arrayBufferToBase64(arrayBuffer)
//方式3
let url= 'data:image/jpeg;base64,'+ res.data.imageBase64
z***@163.com (作者)
第一种试过了不行,
第二种,我是在web端显示,不是在微信里显示,用不了微信API
现在的思路是在往服务空间里上传,但是,也还是显示不了图片
2025-06-19 14:53
1***@qq.com
回复 z***@163.com: 你是网页呀,感觉应该更简单,我来试试看
2025-06-19 14:55
1***@qq.com
回复 z***@163.com: ```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>arrayBuffer2Base64</title>
</head>
<body>
<input type="file" id="fileInput" />
<img style="width: 100px; height: 100px" src="" alt="" id="previewImg" />
</body>
</html>
2025-06-19 15:03
z***@163.com (作者)
回复 1***@qq.com: 解决了解决了,是dataType: 'arraybuffer'写错了,改成responseType就ok了,直接给result.data扔到uniCloud.uploadFile({
fileContent: result.data,
cloudPath: 'test4.jpeg',
success: (res) => {
console.log('上传成功------------->', res.fileID);
}
});就可以了
2025-06-19 15:06
1***@qq.com
回复 z***@163.com: 可以就行,我都准备去翻以前的代码了
2025-06-19 15:07
z***@163.com (作者)
回复 1***@qq.com: 哈哈,感谢感谢
2025-06-19 15:18