wx.getSystemInfo返回safeArea,在真机和模拟器不一致?在iPhoneXr不对?
关于wx.getSystemInfo的返回值safeArea 【问题一】真机和模拟器数值不一致 这是iPhone Xr模拟器的数值: safeArea: {
bottom: 896
height: 852
left: 0
right: 414
top: 44
width: 414
}
这是iPhone Xr真机的数值: safeArea: {
bottom: 862
height: 818
left: 0
right: 414
top: 44
width: 414
}
建议参考客户端开发用的IDE的模拟器,模拟器的样式和各种数据都和真机保持一致,这不正是模拟器的作用吗? 不然模拟器上看到一个效果,真机上又是一个效果。这样模拟不了真实运行后的效果的模拟器,存在的意义是什么? 真机底部是有安全区的,模拟器上没有,那么开发的人怎么知道那个会影响到操作?这不就增加开发人员适配工作量了吗? 【问题二】真机数值没明白是怎么计算的? safeArea: {
bottom: 862
height: 818
left: 0
right: 414
top: 44
width: 414
}
比如上面iPhone Xr的数值,看了API的说明。 top是“安全区域左上角的坐标”,但坐标是相对的,坐标原点是指哪里?屏幕的左上角?还是状态栏以下的左上角?还是状态栏+导航栏以下的左上角?iPhone设备和安卓设备是否一致?这些要说清楚。 另外这个height是818,这个怎么计算的?屏幕高度是896,减去top的44,减去底部的34,这样吗?安卓下又是怎样的? 【问题三】以下计算竖屏屏幕的有效高度是否正确? const {windowHeight, screenHeight, safeArea} = res;
const {bottom} = safeArea || {};
const containerHeight = windowHeight - (screenHeight - bottom)
由于问题二的原因,我只能猜测这么计算出竖屏屏幕的有效高度,请问是否正确(包括iOS和android设备)?