html52.com
我爱小程序-开发者交流社区

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,还是这就是正确结果?

所以这种情况是 bug,还是这就是正确结果?20190920 22:55 更新:




20190920 22:55 更新:

目前使用 wx.getSystemInfo() statusBarHeight 来代替 safeArea.top 进行计算

网友回复

是柿子啊:

截图看下?微信版本是多少?

!!!Σ(っ°Д°;)っ:

安卓最上面的状态栏无法显示App的内容,所以肯定是0啊,iOS全屏的话,状态栏部分是可以显示App内容的,所以是有数值的。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付