微信小程序windowHeight的值在ios和android平台不一致问题解决办法

时间:2023-03-09 19:53:39
微信小程序windowHeight的值在ios和android平台不一致问题解决办法

开发中遇到一个业务需求,需要把页面顶部、底部固定,中间的scroll-view内部滚动。要满足这个需求,需要根据屏幕高度计算中间的scroll-view高度。结果悲催地发现,使用

wx.getSystemInfo拿到的windowHeight居然不一致:
1、在ios中,windowHeight是屏幕高度-底部TabBar的高度
2、在android中,windowHeight是屏幕高度
百度到的大部分说法是,这是小程序在android平台的bug。需要注意调用wx.getSystemInfo的时机。但是试了在onLoad、onReady、onShow里调用都不行。最后,只好用土办法了,先判断什么平台,再根据平台来处理:
       //设置滚动区域高度
wx.getSystemInfo({
success: function (rSys) {
//屏幕-导航的高度
var winHeight = rSys.windowHeight-5;
if(rSys.platform=="android")
winHeight-=45;
.......
me.setData({ scrollViewHeight: winHeight - navBottom });
});
}
});