- 在半屏小程序下,通过wx.getMenuButtonBoundingClientRect()获取胶囊位置,是按照半屏小程序的标准,其值正常。
- 紧接着使用全屏小程序(保活期间),再次通过wx.getMenuButtonBoundingClientRect(),期望是依据全屏小程序的标准,但是返回的还是半屏小程序的数据。
- 同理,若先使用全屏小程序,紧接着使用半屏小程序,半屏小程序中得到的胶囊位置就是全屏小程序的数据。
分析:
- 通过「重新进入小程序」可以获取到正确的数据,因此怀疑是 该api缓存的数据,没有得到即使更新导致。
目前可以通过在onShow()后延迟500ms重新获取getMenuButtonBoundingClientRect的值来规避,这边修复后会尽快上线
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
此处涉及到先在其他环境打开半屏,然后再打开全屏的操作,代码片段无法覆盖这个场景,希望能够辛苦测试下。
已经遇到这个问题了。 确实有这个情况。 wx.getMenuButtonBoundingClientRect() 的缓存问题
复现步骤:
官方周末又要加班了...