收藏
回答

canvasToTempFilePath 在 iphone X上失败

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug canvas 客户端 6.7.3 2.2.4

- 当前 Bug 的表现(可附上截图)

canvasToTempFilePath 在 iphone X 和 iPad Pro 真机上失败,报错canvasToTempFilePath:fail no image(工具内正常)。

在 iPhone 7 上正常。

在 iPhone 6 Plus 上直接连带微信本身一起崩溃 (可能是canvas 本身造成,canvas 尺寸为650rpx x 1000rpx )。


- 预期表现


- 复现路径

  1. 填充背景

  2. 再填充一个长方形

  3. 第2步的长方形描边

  4. wx.downloadFile 下载2张 PNG 图(不大),其中1张是小程序码

  5. 连带第4步的两张图,再加上3张本地图片,总共5张图,ctx.drawImage

  6. 画两个 text (一共不超过100个字符)

  7. ctx.draw(), draw的回调里调用 wx.canvasToTempFilePath


- 提供一个最简复现 Demo


最后一次编辑于  2018-11-21
回答关注问题邀请回答
收藏

2 个回答

  • TerryZ
    TerryZ
    2018-11-21

    解决问题了,原来是 canvas 的分辨率设太大了,在我问题里的分辨率其实 x 10 倍。

    后来改为 x4 就OK了。


    但是奇怪的是 iPhone 7 可以正常渲染,性能更好的 iPhone X 和 iPad Pro 竟然跑不动

    2018-11-21
    赞同
    回复
  • Snail先森💕จุ๊บ
    Snail先森💕จุ๊บ
    2018-11-21

    一种情况一般都是canvas还没绘画完就调用wx.canvasToTempFilePath接口造成的,可以在ctx.draw()回调里设置延时一下调用这个接口wx.canvasToTempFilePath,或者搞一个点击保存的按钮在调用这个接口是最保险的。

    2018-11-21
    赞同
    回复