小程序ios报错 canvasToTempFilePath:fail invalid viewId的解决办法

这篇具有很好参考价值的文章主要介绍了小程序ios报错 canvasToTempFilePath:fail invalid viewId的解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景:

用canvas画好图片之后,调用wx.canvasToTempFilePath,开发工具和安卓机正常,ios报错canvasToTempFilePath:fail invalid viewId

解决:

1、调用Canvas.toDataURL先转成base64
2、将base64转成本地临时路劲

 let base64 = canvas.toDataURL();
  const time = new Date().getTime();
  const imgPath = wx.env.USER_DATA_PATH + "/poster" + time + "share" + ".png";
  //如果图片字符串不含要清空的前缀,可以不执行下行代码.
  const imageData = base64.replace(/^data:image\/\w+;base64,/, "");
  const fs = wx.getFileSystemManager();
  fs.writeFileSync(imgPath, imageData, "base64");
  fs.close()
  // imgPath 就是临时路劲

注意

调用fs.writeFileSync后一定记得用 fs.unlink删掉,或者读取全部文件删掉文章来源地址https://www.toymoban.com/news/detail-859391.html

 const fs = wx.getFileSystemManager()

  const basepath = `${wx.env.USER_DATA_PATH}`

  fs.readdir({

    dirPath: basepath,/// 获取文件列表

    success(res) {
      console.log('全部临时文件')
      console.log(res)

      res.files.forEach((val) => { // 遍历文件列表里的数据
        fs.unlink({
          filePath: basepath + '/' + val
        });
      })

    },
    fail(err) {
      console.log('读取失败')
      console.log(err)

    }

  })

到了这里,关于小程序ios报错 canvasToTempFilePath:fail invalid viewId的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包