想获取胶囊定位信息做自定义头部的适配,然后发现wx.getMenuButtonBoundingClientRect()在开发工具和真机调试不一样,在开发工具上能够正常使用,在真机测试上获取定位值时变为undefined,这个情况似乎只有开真机测试才会这样,用预览功能也能正常获取
代码:
app.js
index.js
开发工具控制台与真机调试控制台对比:
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | getMenuButtonBoundingClientRect() | 客户端 | 7.0.3 | 2.6.1 |
5 个回答
可以在onShow中试试吗,加载时序上可能会导致onLoad无法get
onshow和onready我都试过
这边找了好多台机器都没法复现,问题记下了我们跟进一下
谢谢啦,这个api出现这样的问题我觉得应该是异步的问题,手机是华为荣耀8青春版,只要用的真机调试控制台打印出来的都是undefined,你们可以试一下
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帮助大家“自定义导航栏”,一劳永逸~
我遇到的到不是undefined,但是数据也不对。
同样
请提供一下能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
复现代码:https://developers.weixin.qq.com/s/Kk1TBCml7S6A
是不是只有以上的截图提供的设备才会出现这个问题?我使用代码片段在华为Nova3e上测试正常的
我的测试用的华为荣耀8,试了n遍,清缓存,重启,各种方式都测过,真机调试控制台打印出来的就是undefind,只有开那个真机测试是不正常的,用预览功能正常显示自定义头部
这个getMenuButtonBoundingClientRect()APi是异步的,一开始打印的时候是{}一个空对象,后来再异步插属性进去,所以后面获取不到属性值,用settimeout输出是正常的,我用了其他手机测试有几部可以,有几部不行,这个胶囊定位的接口我打算用来做自定义头部的适配的,一进去小程序就要获取胶囊信息对头部进行自适应,遇到这样的情况,是不是说明这个API的兼容性有点问题?
ios表示预览都失败,只有电脑模拟正常的