收藏
回答

wx.canvasToTempFilePath 新发现BUG

描述:canvas外层view隐藏时canvasToTempFilePath 功能无效。

wxml内容

<button bindtap="mycut">截屏</button>

<view hidden="{{uphidden}}">

    <canvas

            class="cropper"

            style="width:100%;height:50%;background-color: rgba(0, 0, 0, 0.8);margin-top:50px;"

            canvas-id="cropper">

    </canvas>

</view>

js内容

Page({

  data: {

    uphidden: true    

  },

  mycut(){

    var self = this

    self.setData({ uphidden: false })

    wx.canvasToTempFilePath({

      canvasId: 'cropper',

      x: 100,

      y: 190,

      width: 300,

      height: 150,

      destWidth: 300 / 0.48,

      destHeight: 150 / 0.48,

      success: function success(res) {

        console.info(res)

        self.setData({ uphidden: true })

      },

      fail: (res) => {

        console.info(res)

        self.setData({ uphidden: true })

      }

    })

  },

  onLoad: function (e) {    

    wx.hideLoading()

  }

})

以上代码wx.canvasToTempFilePath会fail(errMsg:"canvasToTempFilePath:fail:illegal arguments"),

但是

data: {

    uphidden: false

  }

wx.canvasToTempFilePath会success。

这什么情况,只是因为初始显示和隐藏就差别这么大吗?

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

5 个回答

  • huangzhiqian
    huangzhiqian
    2019-09-04

    遇到同样的问题,当页面隐藏hidden=true的时候wx.canvasToTempFilePath会失效,hidden=false的时候就正常执行!!!有什么解决办法?因为在执行绘图过程,想先隐藏页面显示,等绘完图后再显示出来。。。

    2019-09-04
    有用
    回复
  • momo
    momo
    2017-07-26

    难道是模仿 react 对 setData 做了优化? 把后面截图放在 setTimeout 里就对了

    2017-07-26
    有用
    回复
  • Simon
    Simon
    2017-07-19

    同样出现这个问题,微信之前的版本还正常使用的,等待管理员朋友的回复,谢谢

    2017-07-19
    有用
    回复
  • Jie
    Jie
    2017-07-19

    同样遇到这个问题,求助!

    2017-07-19
    有用
    回复
  • 2017-07-18

    在android中发现,ios没问题

    2017-07-18
    有用
    回复
登录 后发表内容