这是一个胶囊位置信息的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问题都炸锅了。
这个是我加上状态栏高度的console
官方同学来帮忙解决下呗
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
代码片段:”
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
在微信开发者工具中,将模拟器固定单拎出来
wx.getMenuButtonBoundingClientRect()这个返回的是空值
我也发现了,部分机型,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"
}
你这用的什么模拟器?
getMenuButtonBoundingClientRect拿到的top值问题,麻烦更新一下微信版本再试试