想获取永久的无限制的微信小程序的码,从微信已经拿到了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