简单描述就是:wx.getSystemInfoSync()接口返回的windowHeight与真机调试返回的不符。windowHeight被注释为可使用高度,在开发者工具中减去了tabbar的高度,但真机并没有减去,导致我真机和开发者工具不一样!熬了好几天呢😁😁😁🥴
小程序wx.getSystemInfoSync()返回虚假的windowHeight,这个问题我之前在另一个项目中也遇到过,但是当时以为是别的框架的问题,而这次换回了原生后还出现了这样的问题,我使用自定义tabbar(上次没有使用!)的时候有时候windowHeight是正常计算tabbar的但有时候又不能计算!
具体的情况在小程序开发者工具中和真机调试中出现,还有开发者版本预览。以下是代码截图
这是小程序开发者工具下的样式,计算的高度符合预期,与tabbar的灰色区域能证明,找不到看鼠标指针!
这是真机调试下的样式,最后一个元素已经超过了预期范围
此外!在真机中减去tabbar的高度后显示的效果就是开发者工具的效果,我因为这个判断了wx.getSystemInfoSync()接口没有在真机下减去tabbar的高度
很抱歉由于工作有点忙没有办法提供demo给你们,但是!这个问题复现起来很简单。此外建议升级一下开发者社区的代码块功能,为什么是乱码的?!
代码问题,获取window高度 与关闭tabbar同步执行问题,最好获取高度再关闭tab回调后执行或者 获取高度成功后再关闭tab
onShow(){ //获取没有tab高度的windowHeight wx.hideTabBar({ fanimation: false, success:res=>{ this.getMultipleRects() } }) //获取有tab高度的windowHeight 在获取高度后再关闭tab }
"navigationStyle": "custom"
也会影响window高度