通过 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 进行计算
救大命了
安卓最上面的状态栏无法显示App的内容,所以肯定是0啊,iOS全屏的话,状态栏部分是可以显示App内容的,所以是有数值的。
截图看下?微信版本是多少?