使用wx.createCanvasContext 画布做签名,本地测试可以线上就黑图,请问哪里问题?
使用wx.createCanvasContext 初始化画布做签名,然后用wx.canvasToTempFilePath导出签名图片,在微信开发真工具中调试一切正常,但是发布线上之后导出的图片是纯黑的,我贴一下js文件里面的代码,麻烦帮我看看哪里问题。
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
//初始化canvas
const context = wx.createCanvasContext('firstCanvas')
this.setData({
context: context
})
context.draw()
},
// 开始触摸
bindtouchstart: function(e) {
this.data.context.moveTo(e.changedTouches[0].x, e.changedTouches[0].y)
},
// 触摸移动
bindtouchmove: function(e) {
this.data.context.lineTo(e.changedTouches[0].x, e.changedTouches[0].y);
this.data.context.stroke();
this.data.context.draw(true);
this.data.context.moveTo(e.changedTouches[0].x, e.changedTouches[0].y);
},
/**清空画布 */
clear: function() {
this.data.context.draw();
},
/**导出图片 */
export: function() {
const that = this;
let params = {
wxapp_id: App.getWxappId(),
token: wx.getStorageSync('token')
};
this.data.context.draw(false, wx.canvasToTempFilePath({
x: 0,
y: 0,
fileType: 'jpg',
canvasId: 'firstCanvas',
success(res) {
const {
tempFilePath
} = res;
//上传图片
wx.uploadFile({
url: App.api_root + 'upload/image',
filePath: tempFilePath,
name: 'iFile',
formData: params,
success(res) {
let result = typeof res.data === "object" ? res.data : JSON.parse(res.data);
if (result.code === 1) {
// 数据提交
App._post_form('user.agent/sign', result.data, function (e) {
App.showSuccess(e.data, function () {
wx.navigateBack();
});
}, null, function () {});
that.setData({
imgUrl: tempFilePath,
})
}
}
})
},
fail() {
wx.showToast({
title: '导出失败',
icon: 'none',
duration: 2000
})
}
}))
},
1 回复
你好,线上版本也可以打开vconsole排查的,打印下错误回调看看。
①、使用wx.setEnableDebug(Object object)开启调试开关https://developers.weixin.qq.com/miniprogram/dev/api/base/debug/wx.setEnableDebug.html
②、在正式版打开调试还有一种方法,就是先在开发版或体验版打开调试,再切到正式版就能看到vConsole