小程序 wx.getSystemInfoSync 獲取 windowHeight 問題

windowHeight 概念

可以使用窗口高度,即:屏幕高度(screenHeight) - 導航(tabbar)高度異步

存在問題

安卓設備下獲取 windowHeight 不能準確獲得對應的高度,老是拿到屏幕高度code

緣由

1. 同步接口 wx.getSystemInfoSync 並不一樣步(猜想)

wx.getSystemInfoSync 只是在頁面初始化時提早計算。因此對於 windowHeight 這種須要進行功能判斷的屬性,應該使用異步接口,實時獲取接口

2. wx.getSystemInfo 調用的時機不當

上面講了 windowHeight 的定義,因此這個值取決於 tabbar 是否存在生命週期

爲了保證 tabbar 顯示後再進行取值,建議在生命週期的 onReady 鉤子中調用接口 wx.getSystemInfoget

最終方案

  1. 採用異步接口 wx.getSystemInfo
  2. onReady 中調用

代碼同步

onReady() {
    wx.getSystemInfo({
      success({windowHeight}) {
        // todo
      }
    });
  }
相關文章
相關標籤/搜索