收藏
评论

微信小程序修复bug经验


问题1:在小程序使用js字符串替换功能无法替换?



解决方案:

1.汉字内容都是复制过来的,仔细检查没有什么差异,尝试其他方法验证无果;

2.后来通过删除内容一个一个字敲进去就没问题;

3.最后打开小程序Sources菜单里直接看出差异,小红点就是隐藏的汉字字符,如果在遇到这样的问题,这可能是快速查看问题的最快方法了。


问题2:js使用indexOf如何忽略大小写?

   解决方案:

1. 最巧妙的方法就是把他们全都换成大写或小写,再比较就可以了 。


问题3:小程序wx.createSelectorQuery().in(this).boundingClientRect()如何在初始化页面获得标签节点信息?

   解决方案:

1.首先小程序基础库要达到2.6.0;

2.如果选择了最高的基础库依然报错,给wx.createSelectorQuery外层包含定时器300毫秒左右即可(根据初始化加载资源多少来定时间的大小);

3.方法块要写在onReady()生命周期函数里,页面显示完成初始请求资源加载完成了才会执行这个函数。

  问题的原因:

首先基础库2.6.0提升了很好的获取标签信息同步优化,虽然执行这个方法依然需要定时器但是相对低于6.0基础库,加了定时也会立即抛出属性的undefined,6.0基础库经过测试多次相对是稳定的,目前也没有发现抛出错误,甚至定时时间相对极少依然很稳定的。


问题4:bg-hover无效的原因是什么?


问题的原因:


这是因为背景的颜色已经覆盖了bg-hovers的颜色导致看不见过渡效果;


解决方案:


  1. 用浏览器取色器找到这个色系更重的颜色尝试下。



问题5:用户头像无法显示或空白的问题?


问题的原因:


因为头像的地址是https开头,如果加载不出来很有可能跟ssl证书有关,其中小程序社区就要人反馈图片加载不出来的错误:VM4347:2 Failed to load image  net::ERR_SSL_VERSION_INTERFERENCE,这是ssl证书异常的错误,这是偶发的错误。


解决方案:


1.如果是网络问题用户头像图片加载不出来应该是可以理解的,但是有的图片加载出来了很可能我们是需要在小程序后台配置

https://wx.qlogo.cn请求域名;

2.也可以直接给头像图片开头的地址https替换http,image是支持http和https的;



问题6:画布昵称有表情的,ios计算尺寸不对?


问题的原因:


有些昵称表情不是文字表情,在ios手机上用measureText无法计算出来宽度,在安卓手机可以;

解决方案:

  1. 目前多数表情是两个字体的宽度,按汉字计算一个汉字是11~12px宽度,一个表情大约可以23px左右宽度,这样绘图位置会更加接近效果;



问题7:画布保存图片有时是黑屏的问题?


问题的原因:

在频繁使用小程序保存图片的场景下,会出现保存的图片是黑色的,如果你是异步的调用draw画布接口,那这个问题已经很明显了,draw是有回调函数的

解决方案:

  1. 画布绘制的draw接口是有回调的,我们应该要再回调中调用生成图片,这样绘制的画布时同步拿到画布的id,这个时候画布的id是绘制完成的,保存的图片才不会有黑屏的问题。



问题8:画布使用粗体时后面的文字都是粗体的问题?


问题的原因:

在小程序画布中一但使用粗体时,前面文字字体正常,后面绘制的文本都是粗体,不能达到预期的效果,应该是小程序画布的一个bug;


解决方案:

  1. 既然绘制文字前部分字体正常,那就先绘制不是粗体的文字,位置都提前计算好,对不确定位置也需要提前计算在确定;后面在绘制粗体,是可以解决这个问题的。



问题和解决的问题的方法依然会坚持的写下去,也希望问题和问题的解决方案对大家有帮助,最后向大家推荐下我们开发的小程序-脑洞评课。



最后一次编辑于  04-19  (未经腾讯允许,不得转载)
复制链接收藏赞 1