机型:HUAWEI nova 3e,微信版本:7.0.3
chooseLocalImage: function (e) {
var that = this;
let idx = e.currentTarget.dataset.idx
//console.log(idx)
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'], //尺寸
sourceType: ['album', 'camera'], //来源
success(res) {
var _tempUrl = res.tempFilePaths[0];
that.data.rate = 2000000 / res.tempFiles[0].size //不超过2M
//console.log(that.data.rate)
wx.getImageInfo({
src: _tempUrl,
success(res) {
that.setData({
height: parseInt(that.data.width * res.height / res.width),
imageCanvasshow: false
});
const ctx = wx.createCanvasContext('imagecanvas');
let _width = that.data.width
let _height = that.data.height
ctx.drawImage(_tempUrl, 0, 0, _width, _height);
ctx.draw()
setTimeout(() => {
that.drawLocalImageAfter(idx);
}, 200);
}
})
},
fail: function () {
// fail
},
complete: function () {
// complete
}
})
},
drawLocalImageAfter: function (idx) {
try {
var that = this;
wx.canvasToTempFilePath({
quality: that.data.rate,
width: that.data.width,
heght: that.data.height,
fileType: 'jpg',
canvasId: 'imagecanvas',
success: function (res) {
var _url = that.data.sellerImageUrl
_url[idx] = res.tempFilePath
console.log(res.tempFilePath)
console.log(_url);
that.setData({
sellerImageUrl: _url,
imageCanvasshow: true
});
},
fail: function (err) {
console.log(err);
}
})
}
catch (err) {
console.log(err)
}
},
真机上调试时,第一次报canvasToTempFilePath:fail:illegal arguments,第二次正常,第三次报canvasToTempFilePath:fail:illegal arguments,第四次正常,以此类推,最近才开始出现这个问题,有谁知道为什么吗?
请考虑使用 ctx.draw 的回调函数来代替 setTimeout 。
用回调会产生 fail:create bitmap failed 的错误,随机产生错误
我们看下。
回复是不是有字数限制,代码放不上来,提示回复失败
有的。有代码要补充的话,搞个代码片段吧。
其实之前是用的回调:
setTimeout(function () {
ctx.draw(false, function () {
that.drawLogoAfter()
});
}, 200);
出现fail:create bitmap failed 的错误之后才改成:
ctx.draw()
setTimeout(() => {
that.drawLogoAfter();
}, 200);
请问这个报错是什么原因引起的,这边也出现了同样的报错信息,只有在真机时会报错,回调函数中调用的canvasToTempFilePath
setTimeout(function () {
ctx.draw(false, function () {
that.drawImageAfter()
});
}, 500);
改成这种方法之后真机打开调试模式是没问题的,但是关掉调试模式就又不行了
你意思是说调试模式可以,但在工具上调试就不行?
开发者工具上没问题,真机调试也没问题,预览的时候打开调试模式也没问题,关掉调试模式就不行了
我的问题解决了哇,可能是因为没有在downloadFile里添加合法域名,开发者工具勾选了不校验合法域名,按理说预览的时候应该不会出错的,但不知道为什么就是出了错,合法域名添加上就好了
请问楼主,问题解决没有哇,今天也遇到了这个问题,开发者工具上是正常的,安卓机真机预览就不行了呢
麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
https://developers.weixin.qq.com/s/7DWQ2GmQ7d68
机型:HUAWEI nova 3e,微信版本:7.0.3
朋友 解决了吗