微信小程序 Canvas 绘图保存数据,退出后继续绘制
要实现在小程序中使用canvas绘制图片并在退出小程序后,重新进入后继续上次绘制的内容,可以将绘制的数据保存到本地缓存中,在重新进入小程序时读取缓存数据并绘制到canvas上。
首先,在Page的onReady生命周期函数中,读取本地缓存数据,并根据数据进行绘制:
onReady() {
const ctx = wx.createCanvasContext('myCanvas');
this.ctx = ctx;
this.setData({ rows: [] });
// 读取本地缓存数据
const savedData = wx.getStorageSync('savedData');
if (savedData) {
this.setData(savedData);
this.drawTable();
}
},
接下来,在drawTable函数中,保存绘制的数据到本地缓存:
drawTable() {
// 绘制代码省略
// 保存绘制的数据到本地缓存
const data = {
bh: this.data.bh,
mc: this.data.mc,
arr1: this.data.arr1,
dw: this.data.dw,
date: this.data.date,
arr2: this.data.arr2,
zt: this.data.zt,
rows: this.data.rows
};
wx.setStorageSync('savedData', data);
}
最后,在保存图片和刷新页面的函数中,清除本地缓存数据:
saveImg() {
// 保存图片代码省略
// 清除本地缓存数据
wx.removeStorageSync('savedData');
},
refreshPage() {
wx.showModal({
title: '提示',
content: '请确认是否已保存当前数据',
success(res) {
if (res.confirm) {
// 清除本地缓存数据
wx.removeStorageSync('savedData');
wx.reLaunch({
url: '/pages/jiance/jiance'
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
通过以上步骤,在退出小程序后,再次进入时可以继续上次绘制的内容。
原文地址: https://www.cveoy.top/t/topic/pZOp 著作权归作者所有。请勿转载和采集!