收藏
回答

canvas生成动态海报,保存过多后出现闪退,及微信的"安全模式",强制清理缓存才能开微信

前情提要:

1、画海报时我需要知道小程序码的宽度和高度,就需要获取图片信息,但是这需要图片有路径,而小程序码是base64的,所以需要转成临时路径。

2、但是转成临时路径会出问题:

例如:第一次保存了小程序码A路径X,第二次保存小程序码B路径X,这时候我去取路径X的图片画到canvas上,路径X上对映的文件小程序码A

海报实现:

1、base64的小程序码*1 + 主要海报 * 1

2、小程序码 通过writeFile写到临时路径里面(每次都是新的路径)

3、canvas画主海报,画小程序码(每次都新的海报)

4、每个商品一张海报 * n

问题描述:

1、writeFile并没有覆盖第一次的文件写入

2、换思路实现,把写入的文件删除,不就绕过了吗。天真,都能通过stats访问到`writeFile`这个文件,但是`removeSavedFile`报错找不到文件

参考:

https://developers.weixin.qq.com/miniprogram/dev/framework/ability/file-system.html

https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.writeFile.html

https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.removeSavedFile.html

https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.stat.html

https://developers.weixin.qq.com/miniprogram/dev/api/file/Stats.isFile.html

https://developers.weixin.qq.com/community/develop/doc/0006ae764c0b60c13d1a3cb5351400?highLine=writefile

https://developers.weixin.qq.com/community/develop/doc/0006ca0bfbc0a8316528561a051400?highline=removeSavedFile

回答关注问题邀请回答
收藏

1 个回答

  • 2020-04-30

    用户机型:

    用户1:

    用户2:

    2020-04-30
    有用
    回复 7
    • 马沸腾
      马沸腾
      2020-04-30
      会不会是这个问题呢 https://developers.weixin.qq.com/community/develop/doc/00008e5e50859800f63a89b2750000
      2020-04-30
      回复
    • 2020-04-30回复马沸腾
      目前小程序里有用到webview的canvas画图,也有用到小程序的canvas画canvas
      2020-04-30
      回复
    • 2020-04-30回复马沸腾
      感谢
      2020-04-30
      回复
    • 2020-04-30
      大佬这两个问题有办法解决吗
      2020-04-30
      回复
    • 马沸腾
      马沸腾
      2020-05-01回复
      removeSavedFile 只能删除缓存文件,用unlink试试
      2020-05-01
      1
      回复
    查看更多(2)
登录 后发表内容
问题标签