【修复日常bug】微信小程序canvas画商品海报出现个别用户无法生成的情况

微信小程序,在使用canvas画海报的时候,会导致个别用户无法生成的情况,你们可以尝试把绘画某些块的代码注释掉再进行扫码调试,我前几天就遇到个别客户无法生成商品海报的情况,刚开始是以为上一个同事留的坑,当我重构画海报的页面代码以后,还是出现这种问题。

我在这里提醒开发者们,如果出现设备兼容性问题,请各位开发者不要使用真机调试,因为真机调试可以解决90%以上设备兼容性的问题,可以用扫码预览打开调试进行调试,今天我说的这个问题坑了我2天!电脑上无法复现无法绘画的问题,无奈之下只能让客户配合我这边把有问题的代码注释掉让客户扫码进去以后截图给我看看是什么效果,最终发现了问题,就是在绘画微信用户昵称的时候出现了问题,因为客户微信昵称第六个字符是带表情的,这里注意一下,不是canvas不能绘画表情,是因为我处理了到第五个字的时候就截取用省略号显示,比如:我是微信名....  这里正好第六个字符是表情,我这边用了substr(0,6)字符串截取前面5个字符进行绘画导致最后draw的时候出现绘画不出海报,这个问题控制台不会有任何报错,下面是错误的截取用户名称代码:

// 检查用户名称第一行大于5个字换行
let username = this.position.drawUserName.content
// username是用户名称 包含表情,不能用substr进行截取 否则绘画海报出现空白  无任何报错
let onelineusername = username.substr(0,6)

 

最后用了如下解决办法:

先把微信表情过滤掉再换成subString(0,5)进行截取,完美解决!!!

// 过滤微信表情
let username = this.drawUserName.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "");
// 截取前面五个字符然后省略号显示
let onelineusername = username.substring(0,5)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值