收藏
回答

getMenuButtonBoundingClientRect()真机测试bug

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

想获取胶囊定位信息做自定义头部的适配,然后发现wx.getMenuButtonBoundingClientRect()在开发工具和真机调试不一样,在开发工具上能够正常使用,在真机测试上获取定位值时变为undefined,这个情况似乎只有开真机测试才会这样,用预览功能也能正常获取

代码:

app.js


index.js



开发工具控制台与真机调试控制台对比:


最后一次编辑于  03-04  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • 豪🌴
    豪🌴
    03-18
    getMenuButtonBoundingClientRect这个api问题多多呀,另外这些历史问题都遇到过,快哭了都:

    https://developers.weixin.qq.com/community/develop/doc/0002a496594bc88f97f7984a451000

    https://developers.weixin.qq.com/community/develop/doc/0006cc9c1f04f817b8b709ec351000

    https://developers.weixin.qq.com/community/develop/doc/0008aa20650a406b169775dc45b000


    -----

    最好是新出个api帮助大家“自定义导航栏”,一劳永逸~

    03-18
    赞同 2
    回复
  • 娇华
    娇华
    03-04

    请提供一下能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    03-04
    赞同
    回复 7
    • 面条君
      面条君
      03-04

      复现代码:https://developers.weixin.qq.com/s/Kk1TBCml7S6A

      03-04
      回复
    • 娇华
      娇华
      03-04回复面条君

      是不是只有以上的截图提供的设备才会出现这个问题?我使用代码片段在华为Nova3e上测试正常的

      03-04
      回复
    • 面条君
      面条君
      03-05回复娇华

       我的测试用的华为荣耀8,试了n遍,清缓存,重启,各种方式都测过,真机调试控制台打印出来的就是undefind,只有开那个真机测试是不正常的,用预览功能正常显示自定义头部

      03-05
      回复
    • 面条君
      面条君
      03-05回复娇华

      这个getMenuButtonBoundingClientRect()APi是异步的,一开始打印的时候是{}一个空对象,后来再异步插属性进去,所以后面获取不到属性值,用settimeout输出是正常的,我用了其他手机测试有几部可以,有几部不行,这个胶囊定位的接口我打算用来做自定义头部的适配的,一进去小程序就要获取胶囊信息对头部进行自适应,遇到这样的情况,是不是说明这个API的兼容性有点问题?


      03-05
      2
      回复
    • 夏岂
      夏岂
      04-20回复娇华

      ios表示预览都失败,只有电脑模拟正常的

      04-20
      1
      回复
    查看更多(2)
  • ShinBlueCat
    ShinBlueCat
    03-05

    可以在onShow中试试吗,加载时序上可能会导致onLoad无法get

    03-05
    赞同
    回复 3
    • 面条君
      面条君
      03-05

      onshow和onready我都试过

      03-05
      回复
    • ShinBlueCat
      ShinBlueCat
      03-08回复面条君

      这边找了好多台机器都没法复现,问题记下了我们跟进一下

      03-08
      回复
    • 面条君
      面条君
      03-08回复ShinBlueCat

      谢谢啦,这个api出现这样的问题我觉得应该是异步的问题,手机是华为荣耀8青春版,只要用的真机调试控制台打印出来的都是undefined,你们可以试一下

      03-08
      回复
  • -zWing
    -zWing
    03-07

    同样

    03-07
    赞同
    回复
  • 蔡回云
    蔡回云
    05-06

    我遇到的到不是undefined,但是数据也不对。

    05-06
    赞同
    回复