微信小程序修复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的颜色导致看不见过渡效果; 解决方案: 用浏览器取色器找到这个色系更重的颜色尝试下。 问题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无法计算出来宽度,在安卓手机可以; 解决方案: 目前多数表情是两个字体的宽度,按汉字计算一个汉字是11~12px宽度,一个表情大约可以23px左右宽度,这样绘图位置会更加接近效果; 问题7:画布保存图片有时是黑屏的问题? 问题的原因: 在频繁使用小程序保存图片的场景下,会出现保存的图片是黑色的,如果你是异步的调用draw画布接口,那这个问题已经很明显了,draw是有回调函数的。 解决方案: 画布绘制的draw接口是有回调的,我们应该要再回调中调用生成图片,这样绘制的画布时同步拿到画布的id,这个时候画布的id是绘制完成的,保存的图片才不会有黑屏的问题。 问题8:画布使用粗体时后面的文字都是粗体的问题? 问题的原因: 在小程序画布中一但使用粗体时,前面文字字体正常,后面绘制的文本都是粗体,不能达到预期的效果,应该是小程序画布的一个bug; 解决方案: 既然绘制文字前部分字体正常,那就先绘制不是粗体的文字,位置都提前计算好,对不确定位置也需要提前计算在确定;后面在绘制粗体,是可以解决这个问题的。 问题和解决的问题的方法依然会坚持的写下去,也希望问题和问题的解决方案对大家有帮助,最后向大家推荐下我们开发的小程序-脑洞评课。 [图片]