export default {
data() {
return {
paddingTop: '120rpx', // detail-page的padding-top值
// 其他数据...
};
},
onLoad() {
// 在页面加载时动态设置paddingTop的值
this.paddingTop = this.calculatePaddingTop();
},
methods: {
calculatePaddingTop() {
// 获取设备信息
const systemInfo = uni.getSystemInfoSync();
// 判断是否为刘海屏
if (this.isNotchScreen(systemInfo)) {
return '174rpx'; // 假设刘海屏设备的padding-top值为174rpx
} else {
return '120rpx'; // 非刘海屏设备的padding-top值为120rpx
}
},
isNotchScreen(systemInfo) {
// 判断屏幕比例是否大于2,如果大于2则认为是刘海屏
if (systemInfo.screenHeight / systemInfo.screenWidth > 2) {
return true;
}
// 判断设备型号,这里只列出了一些常见的刘海屏设备型号,实际应用中可能需要添加更多的型号
const notchScreenModels = ['iPhone X', 'iPhone 11', 'iPhone 12', '华为', 'OPPO', 'VIVO', '小米'];
for (let model of notchScreenModels) {
if (systemInfo.model.indexOf(model) >= 0) {
return true;
}
}
// 如果以上条件都不满足,则认为不是刘海屏
return false;
},
// 其他方法...
},
// 其他选项...
};