确实。。模拟器里面计算半天实现交互到了真机就是不行,这种bug让人上火
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设备)?
2020-05-19