使用场景
根据 canvas 进行裁剪 然后 使用draw 方法 回调函数 中 再调 canvasToTempFilePath api
生成 图片
模拟器 是正常的
是正常的
但是 在 真机中
代码 :
context.draw( false , function (){ wx.canvasToTempFilePath({ canvasId: 'canvas' , success: function (res) { console.log(res) wx.getImageInfo({ src: res.tempFilePath, success: function (res) { console.log(res) } }) _this.page.setData({ canvaResUrl: res.tempFilePath, }) } }) }) |
问题是
真机生成的 图片 有的 时候正常 有的 时候不正常 模拟机 每次正常
最后 定位 到 draw 接口 是 异步的
在 回调 时 生成 图片 有问题 在 draw 回调 加了 一个 定时器
context.draw( false , function (){ setTimeout( function (){ wx.canvasToTempFilePath({ canvasId: 'canvas' , success: function (res) { wx.getImageInfo({ src: res.tempFilePath, success: function (res) { console.log(res) } }) _this.page.setData({ canvaResUrl: res.tempFilePath, }) } }) },1000) }) |
疑问:
draw 中 回调 不是 在 绘制 完成 时 执行么
现在 加的 时间 是 1000ms 这个 时间 可能 和 设备 有关 这样 处理肯定 不好
还有 更好的 解决 办法么?
遇到同样问题,好郁闷啊,555555555
同样,这因该是图片还没画完,就调回调函数了。
我也遇见这个问题,很奇怪。
问题坠机了,官方没理我,然后项目没继续了。
你是怎么处理的?
只有setTimeout了,没办法了
我也遇到了同样的问题,wx.draw不是成功回调才执行wx.canvasToTempFilePath的吗?万一超过1秒还没有画完呢?
你好
wechatide://minicode/DDwrAmmQ7wDt
麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
模拟机 是正常的
如果 把 setTimeout 时间 变小
真机上
裁剪 图片 就会 这样
如果 把 时间 改成 1000ms 就 正常了
我手机 是 华为的 ios 没测
麻烦了哈
我也遇到了同样的问题,wx.draw不是成功回调才执行 wx.canvasToTempFilePath的吗?万一超过1秒还没有画完呢?
鬼知道,不知道 它异步 是 写在 哪了 感觉 不像是 写在 success 都不知道有 succes没
是的 我现在 暂时 设置的 是 1s 不知道 怎么办