做了一小段时间的微信小程序开发,踩了不少坑,在这里做一下总结:
1、在 app.js
的 onShow
和 onHide
时 getCurrentPages()
查询页面栈,可能获取到空数组
发现时间:20180517
系统环境:IOS
如果有在这两个场景使用,建议对当前页面对象进行判断是否为
undefined
2、tabBar页面 wx.getSystemInfo
的 windowHeight
小于实际高度(大约少了一个tabBar的距离)
发现时间:20180517
系统环境:android部分机
3、tabBar页面Page的onTabItemTap
事件在首次切换不会触发,要在页面onShow
后再切换才触发
发现时间:20180517
系统环境:iOS
sdk 1.9.97有问题、更新到2.0.7正常
4、button的border无法去掉?
小程序的open-type
是button
特有的属性,所以使用小程序原生button
组件在所难免,比如:
1 | <button open-type="share" class="btn"> |
但是原生的button
可能不太适合业务,所以需要去掉默认样式,比如去掉背景色和边框:
1 | .btn { |
咦!意不意外?背景是去掉了,边框还在。。。
原来原生button
的边框是写在 伪元素 after
的,所以,需要这样才能去掉:
1 | .btn::after { |
5、canvas.draw
回调一直不执行,也没报错(sdk在1.7.1以上都不可以)
如果你用了很多方式也排查不出原因,可以试下把绘画的canvas
标签放到page
页面级别的html
,而不是放到自定义的组件html
。貌似放到自定义组件,无法找到画布,导致绘画不成功(它没报错,但回调又不执行)。
回头看来官方api,原来createCanvasContext
方法有第二个参数 Object this
,
在自定义组件下,当前组件实例的this,表示在这个自定义组件下查找拥有 canvas-id 的