wxml代码如下
<view class="canvas-box"> <canvas style="width:300px;height:530px;" canvas-id="mycanvas"/></view> |
js文件代码如下
//二维码var qrcodepath = "网站域名/static/images/iconfont-clear.png";context.drawImage(qrcodepath, 102, 230, 110, 110);//绘制图片wx.drawCanvas({ canvasId: "mycanvas", actions: context.getActions()});//将生成好的图片保存到本地wx.canvasToTempFilePath({ canvasId: 'mycanvas', success: function success(res) { wx.saveImageToPhotosAlbum({ wx.showToast({ title: '图片生成成功', icon: 'loading', duration: 2000 }); } }); }}); |
IDE测试结果
手机预览。未能生成,只是一张透明图片
,另外,如果图片是本地的。则生成正常。网络图片一律失败
所以考虑到时候网络图片不行,就将图片下载。然后使用下载后的图,一样失败
下载过程如下
downpic:function(){ console.log("开始下载图片"); var that=this; var qrcodepath = "; wx.downloadFile({ url: qrcodepath, type: 'image', success: function (file) { wx.saveFile({ tempFilePath: file.tempFilePath, success: function (r) { console.log("qrcode:" + r.savedFilePath); that.setData({ qrcode_path: r.savedFilePath }) } }) }, fail: function (err) { console.log(err) } }) } |
不知道如何解决这个问题,如果有人碰到过,请多多指教。谢谢

draw是异步,下个版本会提供回调函数,工具也会修复。目前请延迟一下再调用canvasToTempFilePath
downloadFile 要配置域名哦
drawImage 网络地址必须下载后绘制
开发的时候的域名,点击不校验
而且 绘制 要在 图片下载成功之后,考虑异步的情况
好的,谢谢
我只能假装我这个 异步setTimeout 在drawImage 之后
好的,我测试下
谢谢
域名配置的,下载后提示保存路径为http//store/*****
然后也是考虑到异步问题。我加了setTimeout 也是无效,你有参考例子吗?