方法一、
1、采用下面方式进行判断是否有底部横条
let res = wx.getSystemInfoSync();
if (res.model.indexOf('iPhone X') > -1 || res.safeArea.top > 20) {
this.isAllScreen = true
};
注意,跟一些ui沟通时,可能他们会认为安卓上没有必要对底部进行抬高,所以可以把上面 res.safeArea.top > 20 部分去掉。
2、通过上面判断后,如果有斜杠,可以在底部增加68px padding或者如果布局采用的是定位的话,可以改变bottom的值.
方法二、
网上查到有人用下面方式兼容,采用方案是苹果方案,安卓机不支持。方式如下:
padding-bottom:calc(10px + env(safe-area-inset-bottom)/2);
注意:
1、10px是你原本不考虑底部横杆时布局的值
2、env、safe-area-inset-bottom 这篇文章介绍得很清楚 https://blog.csdn.net/sinat_24946363/article/details/105181622
3、ui可能更倾向于加68px,所以env(safe-area-inset-bottom)/2 中除以2其实是没有必要的,当然根据自己项目而定。另外,部分ui会要求在有悬浮按钮的时候,底部颜色跟悬浮按钮相同,没有悬浮按钮的时候与背景相同,所以虽然可以采用bottom调节定位,但采用padding-bottom更容易满足上述要求。