描述:canvas外层view隐藏时canvasToTempFilePath 功能无效。
wxml内容
<button bindtap="mycut">截屏</button>
<view hidden="{{uphidden}}">
<canvas
class="cropper"
style="width:100%;height:50%;background-color: rgba(0, 0, 0, 0.8);margin-top:50px;"
canvas-id="cropper">
</canvas>
</view>
js内容
Page({
data: {
uphidden: true
},
mycut(){
var self = this
self.setData({ uphidden: false })
wx.canvasToTempFilePath({
canvasId: 'cropper',
x: 100,
y: 190,
width: 300,
height: 150,
destWidth: 300 / 0.48,
destHeight: 150 / 0.48,
success: function success(res) {
console.info(res)
self.setData({ uphidden: true })
},
fail: (res) => {
console.info(res)
self.setData({ uphidden: true })
}
})
},
onLoad: function (e) {
wx.hideLoading()
}
})
以上代码wx.canvasToTempFilePath会fail(errMsg:"canvasToTempFilePath:fail:illegal arguments"),
但是
data: {
uphidden: false
}
时wx.canvasToTempFilePath会success。
这什么情况,只是因为初始显示和隐藏就差别这么大吗?
遇到同样的问题,当页面隐藏hidden=true的时候,wx.canvasToTempFilePath会失效,hidden=false的时候就正常执行!!!有什么解决办法?因为在执行绘图过程,想先隐藏页面显示,等绘完图后再显示出来。。。
难道是模仿 react 对 setData 做了优化? 把后面截图放在 setTimeout 里就对了
同样出现这个问题,微信之前的版本还正常使用的,等待管理员朋友的回复,谢谢
同样遇到这个问题,求助!
在android中发现,ios没问题