收藏
回答

自定义component内使用wx.canvasToTempFilePath报错

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.canvasToTempFilePath 客户端 6.7.3 IOS12.1

createPosterCanvas: function (product,qrcode) {

      const self = this

      const ctx = wx.createCanvasContext('posterCanvas', self)

      ctx.drawImage(product, 0, 0, 313, 151)

      ctx.drawImage(qrcode, 200, 170, 100, 100)

      ctx.setFontSize(12)

      ctx.setFillStyle('#666666')

      ctx.setTextAlign('center')

      ctx.fillText('长按识别二维码', 246, 292)

      ctx.draw(false,setTimeout(()=>{

        wx.canvasToTempFilePath({

          canvasId: 'posterCanvas',

          fileType: 'jpg',

          success: function (res) {

            console.log(res.tempFilePath)

          },

          fail: function (res) {

            console.log(res)

          }

        }, self)

      },200))

    },

使用开发者工具可以获取到文件的临时路径,使用手机返回fail canvas is empty。

有没有遇到过类似问题的同学,求帮忙解答一下,谢谢~

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

3 个回答

  • 视频号小店技术助手 - cunjin
    视频号小店技术助手 - cunjin
    2018-12-29

    你的setTimeout的位置不对吧。

    2018-12-29
    有用
    回复
  • 匿名
    匿名
    2018-12-14
    ctx.draw(false, () => {
      setTimeout(() => {
        // do something...
      }, 200);
    });


    2018-12-14
    有用
    回复
  • 灵芝
    灵芝
    2018-12-13

    麻烦提供代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2018-12-13
    有用
    回复 4
    • 七芋圆全
      七芋圆全
      2018-12-14

      我进行合成的时候程序不进ctx.draw()的回调是怎么回事?也就是说 ctx.draw(false, () => {    // 这里面的代码都不执行     })。知道是怎么回事吗

      2018-12-14
      回复
    • muse
      muse
      2019-03-06

      最后怎么解决的,同问题

      2019-03-06
      回复
    • 2019-06-04回复七芋圆全

      没有进回调函数:没有获取到canvas的context,你可以试试控制台调用试试

      2019-06-04
      回复
    • 七芋圆全
      七芋圆全
      2019-06-05回复

      是因为我没有在wxml里面写canvas标签哈哈哈哈 我真蠢

      2019-06-05
      回复
登录 后发表内容