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
}
});
}