MorJS 支付寶使用自定義頂部導航欄時

2024-01-20 11:32 更新
  • 問題表現(xiàn): 在.json 文件中設置 "transparantTitle":"always" 時:
    • 微信端左上角的返回按鈕和 home 按鈕會無法顯示,需要自定義
    • 支付寶仍可以獲取到 statusBarHeighttitleBarHeight 的值,但微信獲取到的 titleBarHeight 值為零
  • 解決方案:
    • 沒有返回按鈕的問題只能是前端手動添加
    • 微信側可以通過 api:wx.getMenuButtonBoundingClientRect() 獲取到膠囊位置,手動計算出 title 部分高度,參考代碼邏輯如下 ????
function getHeaderBar() {
  const systemInfo = getSystemInfoSync()
  if (systemInfo.app === 'wechat') {
    // 微信端
    // 低版本兼容,基礎庫 2.1.0 開始支持
    // eslint-disable-next-line no-undef
    if (wx.getMenuButtonBoundingClientRect) {
      // 該方法可使用
      // eslint-disable-next-line no-undef
      const { height, top, left } = wx.getMenuButtonBoundingClientRect()
      console.log('微信讀取膠囊結果', { height, top, left })
      let { statusBarHeight } = systemInfo
      const extraHeight = 10
      statusBarHeight = top - statusBarHeight > 0 ? statusBarHeight : 0 // 華為p10狀態(tài)欄是浮層
      const titleBarHeight = (top - statusBarHeight) * 2 + height + extraHeight
      return {
        height: statusBarHeight + titleBarHeight,
        titleBarHeight: titleBarHeight,
        statusBarHeight: statusBarHeight,
        buttonLeft: left,
        extraHeight
      }
    }
    // 低版本兼容
    return {
      height: 84,
      titleBarHeight: 40,
      statusBarHeight: 44
    }
  }

  // 非微信端
  const { titleBarHeight, statusBarHeight } = systemInfo
  return {
    height: titleBarHeight + statusBarHeight,
    titleBarHeight,
    statusBarHeight
  }
}


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號