收藏
回答

右上角胶囊按钮的布局位置信息部分手机获取错误

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.getMenuButtonBoundingClientRect() 客户端 7.0.3 2.6.4



这是一个胶囊位置信息的console,top位置信息在有些手机上获取错误,少了状态栏高度,我现在手动判断这个top位置高度,自己把状态栏高度加上去貌似正常了,但这样始终觉得不靠谱,或许是我代码逻辑错了,还是个bug问题,希望官方同学给个回复。谢谢。

附上我的逻辑代码:



// 获取系统状态栏信息

wx.getSystemInfo({

success: e => {

this.globalData.StatusBar = e.statusBarHeight;

let custom = wx.getMenuButtonBoundingClientRect();

this.globalData.Custom = custom;

if (custom.top < 18) {

custom.top = custom.top + e.statusBarHeight

custom.bottom = custom.bottom + e.statusBarHeight

}

this.globalData.CustomBar = custom.bottom + custom.top - e.statusBarHeight;

console.log('StatusBar:' + e.statusBarHeight)

console.log(custom)

console.log('CustomBar:' + this.globalData.CustomBar)

}

})


请同学们尽快回复,新版本更新,这个bug问题都炸锅了。

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

2 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    2019-04-02

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-04-02
    赞同
    回复 6
    • JamesLiu
      JamesLiu
      2019-04-02

      代码片段:”

      https://developers.weixin.qq.com/s/Hu9q6kmf7Z7p


      Xiaomi

       

      MI 6

      7.0

       

      2.5.2

       

      Android 8.0.0
       

      HUAWEI

       

      SLA-TL10

      7.0

       

      2.5.2

       

      Android 7.0



      2019-04-02
      回复
    • JamesLiu
      JamesLiu
      2019-04-02

      在微信开发者工具中,将模拟器固定单拎出来

      wx.getMenuButtonBoundingClientRect()这个返回的是空值


      2019-04-02
      回复
    • 三哥
      三哥
      2019-04-02

      我也发现了,部分机型,getMenuButtonBoundingClientRect拿到的top值,没有算statusBarHeight




      机型:


      {

        "locationEnabled": true,

        "screenWidth": 412,

        "screenHeight": 821,

        "windowHeight": 821,

        "bluetoothEnabled": true,

        "language": "zh_CN",

        "microphoneAuthorized": true,

        "version": "7.0",

        "cameraAuthorized": true,

        "system": "Android 9",

        "fontSizeSetting": 16,

        "locationAuthorized": true,

        "pixelRatio": 2.625,

        "notificationAuthorized": true,

        "model": "ONEPLUS A6000",

        "statusBarHeight": 31,

        "deviceOrientation": "portrait",

        "wifiEnabled": false,

        "brand": "OnePlus",

        "windowWidth": 412,

        "platform": "android",

        "SDKVersion": "2.5.2"

      }


      2019-04-02
      回复
    • JamesLiu
      JamesLiu
      2019-04-03

      你这用的什么模拟器?


      2019-04-03
      回复
    • 社区技术运营专员-灵芝
      社区技术运营专员-灵芝
      2019-04-03回复JamesLiu

      getMenuButtonBoundingClientRect拿到的top值问题,麻烦更新一下微信版本再试试

      2019-04-03
      回复
    查看更多(1)
  • JamesLiu
    JamesLiu
    2019-04-01



    这个是我加上状态栏高度的console

    2019-04-01
    赞同 1
    回复 1
    • JamesLiu
      JamesLiu
      2019-04-01

      官方同学来帮忙解决下呗


      2019-04-01
      回复
登录 后发表内容