救大命了
wx.getSystemInfo 获取的 safeArea 在安卓非异形屏中的值不正确?通过 wx.getSystemInfo() 可以获得 safeArea,在 iPhone X,一加6 等异形屏手机中,获得的数值是正确的。 在 iPhone 6 这种正常屏幕中的数据也是正确的。 [代码]safeArea: {[代码][代码] [代码][代码]bottom: 667,[代码][代码] [代码][代码]height: 647,[代码][代码] [代码][代码]left: 0,[代码][代码] [代码][代码]right: 375,[代码][代码] [代码][代码]top: 20,[代码][代码] [代码][代码]width: 375[代码][代码]}[代码] 但是在正常屏幕的安卓手机中会忽略最上方的状态栏,比如在华为 Mate9 中,获得的数据是这样的: [代码]safeArea: {[代码][代码] [代码][代码]bottom: 658,[代码][代码] [代码][代码]height: 658,[代码][代码] [代码][代码]left: 0,[代码][代码] [代码][代码]right: 393,[代码][代码] [代码][代码]top: 0,[代码][代码] [代码][代码]width: 393[代码][代码]}[代码] 注意这里的 top 的值是 0,而 iPhone 中的 safeArea.top 是 20,也就是说在安卓中最上方的状态栏的高度被忽略了。 另外,在模拟器中,使用 nexus 获取的 safeArea.top 也是 20,而不是 0。 所以这种情况是 bug,还是这就是正确结果? [图片] 20190920 22:55 更新: 目前使用 wx.getSystemInfo() statusBarHeight 来代替 safeArea.top 进行计算
01-23