ios系统(苹果手机)微信小程序canvas.draw不执行回调

当canvas绘制图片完成之后,来执行draw的时候,
1.安卓手机不受影响,可以正常执行draw的回调函数
2.苹果手机在ios高版本系统上,则可能出现draw的回调函数不执行了。 
比如以下代码:

let context = uni.createCanvasContext('myCanvasId',this);
// 项目业务逻辑...
// 项目业务逻辑...
// 项目业务逻辑...
context.draw(false,()=>{});

之所以会出现这样的原因是:ios高版本系统 对于 canvas的元素要求是: canvas元素必须存在,如果在业务逻辑中出现过不存在,则可能会导致draw的回调不执行。
比如下面的例子:

1. 问题原因:设置了 if 或者 hidden 导致

<!-- 在苹果手机上可能会不执行draw的回调 -->
<canvas 
  canvas-id="myCanvasId"
  :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px' }" 
  v-if="canvasShow"
></canvas>

2. 解决方案:去掉 if 或者 hidden

<canvas 
  canvas-id="myCanvasId"
  :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px' }" 
  v-show="canvasShow"
></canvas>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值