微信小程序 iPhone刘海屏系列机型适配
2020-12-03 本文已影响0人
Accepted_
按钮被底部横条遮挡
真机下,
真机 刘海机型 iOS14 statusBar为47
第一步 判断是否是刘海屏
首先我们打印一下机型信息
wx.getSystemInfo({
success: function (res) {
console.log(res)
}
})
可以看到,模拟器下,普通屏幕statusBarHeight
为20,而刘海屏statusBarHeight
为44。
真机下,
model
和模拟器有些出入,但都带iPhone字样。刘海屏statusBarHeight
在iOS14和iOS13及以下系统不一样,为47。(因为状态栏多了隐私灯)真机 刘海机型 iOS14 statusBar为47
所以判断是iPhone刘海屏机型的条件就可以是:model带iPhone字样 && statusBarHeight > 20
我们在app.js
里写好全局变量:
isIPhoneXSeries: false, // 当前设备是否为刘海屏系列手机
wx.getSystemInfo({
success: function (res) {
console.log(res)
// 判断设备是否为刘海屏
if (res.model.indexOf("iPhone") >= 0 && (res.statusBarHeight > 20)) {
_this.globalData.isIPhoneXSeries = true
}
}
})
第二步:控件适配刘海屏
方法一:写两个样式
js:
var app = getApp();
data: {
isIPhoneXSeries: app.isIPhoneXSeries,
}
wxml:
<view class="isIPhoneXSeries ? bottomSafeHeight : bottomHeight">
<view class="ok">确定</view>
<view class="cancel">取消</view>
</view>
wxss:
.bottomSafeHeight { /*刘海屏底部高度*/
height: 124rpx;
}
.bottomHeight { /*普通屏幕底部高度*/
height: 90rpx;
}
方法二:控件高度设为变量,在js中计算这个变量的值
js:
let bottomHeight = getApp().globalData.isIPhoneXSeries ? 124 : 90
this.setData({
bottomHeight: bottomHeight
})
wxml:
<view style="height:{{bottomHeight}}rpx">
<view class="ok">确定</view>
<view class="cancel">取消</view>
</view>
适配完毕