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;
    },
    // 其他方法...
  },
  // 其他选项...
};

By lxcss

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注