windowHeight
概念
可使用窗口高度,即:屏幕高度(screenHeight
) - 导航(tabbar
)高度
存在问题
安卓设备下获取 windowHeight
不能准确得到对应的高度,总是拿到屏幕高度
原因
1. 同步接口 wx.getSystemInfoSync
并不同步(猜测)
wx.getSystemInfoSync
只是在页面初始化时提前计算。所以对于 windowHeight
这种需要进行功能判断的属性,应该使用异步接口,实时获取
2. wx.getSystemInfo 调用的时机不当
上面讲了 windowHeight
的定义,所以这个值取决于 tabbar
是否存在
为了保证 tabbar
显示后再进行取值,建议在生命周期的 onReady
钩子中调用接口 wx.getSystemInfo
最终方案
- 采用异步接口
wx.getSystemInfo
- 在
onReady
中调用
代码
onReady() {
wx.getSystemInfo({
success({windowHeight}) {
// todo
}
});
}