收藏
回答

云函数生成的小程序码怎么描绘到canvas上?

最近需要做页面生成海报带小程序码分享功能。不知道怎么将云函数生成的二维码描绘到画布canvas上,有哪位仁兄知道的,请指导指导一下。

已经看了海量相关文章,花了约一周时间研究了。网上的案例大部分都是采用了官方废弃的接口,参考意义不大。

想到云函数生成的小程序码两种方式:

方法1、返回流文件 buffer,但发现新官方文档CanvasContext.drawImage接口的图片url不接受流文件,需要将流文件转为base64才可以,然后官方又把wx.arrayBufferToBase64接口废弃了(这是过去大家都用来将二维码buffer转base64的办法),这个办法被废弃后,官方也没有提示用什么方法替换被废弃的接口,所以这条路被堵了;

方法2、直接在云端生成二维码后,再将二维码存放在小程序云存储空间里,在前端调用云函数返回的fileID。大家都知道云存储的fileID格式是:cloud://XXX-happy-oljh51617900346557.jpg,调用画布的CanvasContext.drawImage接口也不接受上述格式的fileID,所以这条路赶紧也被堵住了。

尝试过用wx.getImageInfo将云存储小程序码下载下来,生产临时图片url,但wx.getImageInfo也不接受上述图片url格式,然后再用wx.cloud.getTempFileURL调用了存放在云端的二维码网络url放进wx.getImageInfo作为参数调用,但发现报错fail download image fail. reason: dow…Task:fail exceed max download connection count 10

已经绝望的时候用手机调试了一下,居然发现手机没有报这个错误,但电脑端报错了。

做这个云函数生产小程序码,用到canvas,官方也官宣旧接口已经不再维护,新版type=2d,也遇到挺多坑。也想问问大家这么一个云函数生成小程序码,然后生成具体页海报需求是这么实现的?

回答关注问题邀请回答
收藏

1 个回答

  • 甲霖
    甲霖
    2021-06-23

    wx.getImageInfo 可以接收云端的文件链接呀cloud://... 就是这样生成二维码有点慢

    2021-06-23
    有用
    回复
登录 后发表内容