要实现在小程序中使用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('用户点击取消');
      }
    }
  });
}

通过以上步骤,在退出小程序后,再次进入时可以继续上次绘制的内容。

微信小程序 Canvas 绘图保存数据,退出后继续绘制

原文地址: https://www.cveoy.top/t/topic/pZOp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录