获得过 0 次赞
回答过的问题获得 0 次赞
分享过的文章/案例获得 0 次赞
评论与回复获得 0 次赞
已经遇到这个问题了。 确实有这个情况。 wx.getMenuButtonBoundingClientRect() 的缓存问题 复现步骤: 先打开半屏小程序, 通过wx.getMenuButtonBoundingClientRect()获取的到的位置信息,再关闭半屏小程序通过主入口再打开自己的小程序,会发现wx.getMenuButtonBoundingClientRect()获取到的位置信息跟半屏打开的位置信息一致; 而删除小程序后,再重新从主入口打开,再通过wx.getMenuButtonBoundingClientRect()可以获取到全屏正确数据;
wx.getMenuButtonBoundingClientRect()有缓存,导致计算错误在半屏小程序下,通过wx.getMenuButtonBoundingClientRect()获取胶囊位置,是按照半屏小程序的标准,其值正常。紧接着使用全屏小程序(保活期间),再次通过wx.getMenuButtonBoundingClientRect(),期望是依据全屏小程序的标准,但是返回的还是半屏小程序的数据。同理,若先使用全屏小程序,紧接着使用半屏小程序,半屏小程序中得到的胶囊位置就是全屏小程序的数据。分析: 通过「重新进入小程序」可以获取到正确的数据,因此怀疑是 该api缓存的数据,没有得到即使更新导致。
2022-08-30