最近在做小程序的时候,发现一个css适配的问题,因 iphoneX 以上的手机型号底部有滑动条显示,会挡住 footer 的底部内容,所以需要到判断 iPhoneX 设备来显示不同样式。
微信使用 wx.getSystemInfo
百度使用 swan.getSystemInfo
在 app.js 中添加设备判断
globalData: {
userInfo: null,
isIphoneX: false
//判断是否是iPhoneX
},
onShow: function() {
var that = this;
swan.getSystemInfo({ //微信修改为:wx.getSystemInfo
success: function(res) {
// console.log('手机信息res'+res.model)
let modelmes = res.model;
if (modelmes.search('iPhone X') != -1) {
that.globalData.isIphoneX = true
}
},
})
}
在需要判断的 index.js 内添加
var app= getApp();
Page({
data: {
isIphoneX: false
},
onLoad: function(){
// 判断是否为iPhoneX
var isIphoneX = app.globalData.isIphoneX;
console.log(isIphoneX ? '是iPhoneX' : '不是iPhoneX')
this.setData({
isIphoneX: isIphoneX
})
}
})
在需要的 wxml/swan 页面添加判断
<view class="{{isIphoneX ? ' 我是X ' : ' 我不是X '}}"></view>
该方法只适合需要适配的页面,百度小程序提供的动态库或者组件目前是不能使用的。
使用苹果官方推出适配方案css函数env()、constant()来适配
若全局需要适配的话,可以直接在app.wxss或app.css里给相应的部分添加以下代码:
padding-bottom: constant(safe-area-inset-bottom);
/*兼容 IOS<11.2*/
padding-bottom: env(safe-area-inset-bottom);
/*兼容 IOS>11.2*/
THE END
喜欢就支持一下吧