微信小程序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 });
            });
          }
        });

猜你喜欢

转载自www.cnblogs.com/oliverreal/p/10553426.html