收藏
回答

子页面获取windowHeight不正确

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.getSystemInfoSync() 微信iOS客户端 6.6.6 2.0.8

- 当前 Bug 的表现(可附上截图)

如果有tabbar,用wx.getSystemInfoSync()获取到得所有页面的windowHeight都会少了tabbar得高度,然而子页面是没有tabbar的,这样的高度是不正确得

- 预期表现


- 复现路径

app.json 一个有tabbar和没有tabbar

- 提供一个最简复现 Demo


回答关注问题邀请回答
收藏

5 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-05-21

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-05-21
    有用
    回复 13
    • 吟渐的小风dee
      吟渐的小风dee
      2018-05-22
      wechatide://minicode/viUHFAmo6kZ3 你看一下
      2018-05-22
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-05-23回复吟渐的小风dee
      尝试下在onLoad的时候再调用 wx.getSystemInfoSync 接口
      2018-05-23
      回复
    • 大先生🎈🎈
      大先生🎈🎈
      2018-05-24回复小程序技术专员-june
      不管在onLoad 还是在 onReady 获取到的windowHeight 都是不对的。 感觉 wx.getSystemInfo 读取到的信息是缓存的信息。 我直接从主页进,windowHeight 是减去tabbar 的高度。 我直接从子页面直接进入(不是从主页面跳转进入),windowHeight是没有减去tabbar 的高度。 所以这个wx.getSystemInfo 方法给我感觉,一旦调用过一次,后续的调用这个方法是不是读取的缓存呢?
      2018-05-24
      1
      回复
    • 大先生🎈🎈
      大先生🎈🎈
      2018-05-24回复小程序技术专员-june
      从主页跳转到子页面(navigateTo() 跳转,保留当前主页面,然后在子页面获取windowHeight的高度,其实还是依赖主页面的可使用高度windowHeight呢?), 是不是这个原因呢?
      2018-05-24
      1
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-05-24回复大先生🎈🎈
      你这边说没有减去tabbar高度是指两个页面获取到的windowHeight相等的?我这边用你的代码片段试了下确实是不同的 以iPhone6为例子,主页555,sub页是603.
      2018-05-24
      回复
    查看更多(8)
  • null
    null
    03-17

    我原来是在app.js里调用 wx.getSystemInfoSync(),在子页面获取值,和楼主说的问题一样, 直接在子页调用wx.getSystemInfoSync(),就可以得到正确的值了。


    03-17
    有用
    回复
  • 陈小平
    陈小平
    2018-06-01

    这个问题解决了吗?我也遇到了

    2018-06-01
    有用
    回复 1
  • 大先生🎈🎈
    大先生🎈🎈
    2018-05-25

    好的

    2018-05-25
    有用
    回复
  • 吟渐的小风dee
    吟渐的小风dee
    2018-05-24


    2018-05-24
    有用
    回复
登录 后发表内容