使用小程序生成参数二维码接口在服务器端生成产品详情页二维码,然后在小程序端将服务器端这个二维码canvas绘制海报右下角。但是绘制出来的海报使用手机扫这个小程序二维码时,出现问题无法正确到这个产品页。
后来发现,问题出在小程序端canvas海报时,这个二维码图片需要去服务器请求,导致绘制出来海报右下角的二维码失真,扫不出来参数信息。测试发现如果把这个二维码图片放在小程序内的文件夹中,绘制出来的海报扫码正常。好像问题就在这个远程图片的请求上,代码如下:
......
imgObj2.src = 'https://www.xxx.cn/images/poster1.png'//这里如果更换为本地文件路径,下面绘制出来的海报二维码就正常。远程的就会失效
imgObj2.onload = function () {
// 图片加载完之后也是根据dpr转换尺寸绘制
ctx.drawImage(imgObj2, 389 * dpr, 484 * dpr, 190 * dpr, 190 * dpr)
......
有需要网络请求的图片,你要先通过wx.downloadFile下载下来,然后再来绘制