uni-app 飞书小程序横屏后两端留白

uni-app 飞书小程序横屏后两端留白

操作步骤:

  • 打开H5页面

预期结果:

  • 横屏全屏展示

实际结果:

  • 横屏后,页面两端留白

bug描述:

  • 飞书小程序横屏后,两端留白
项目信息 详细信息
产品分类 uniapp/小程序
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 10
HBuilderX类型 正式
HBuilderX版本号 3.99
第三方开发者工具版本号 2.29.0.0
基础库版本号 1.9.88.0
项目创建方式 HBuilderX

image

3 回复

有人回答吗?大佬们


查阅了文档,飞书小程序那边他们的横屏功能还有很多问题需要完善,尽量避免使用飞书小程序横屏,需要到飞书小程序开发者社区反馈

在开发飞书小程序时,如果你希望实现横屏显示并且避免两端留白,可以采取以下几种方法:

1. 使用 CSS 进行适配

你可以通过 CSS 的 transform 属性来调整页面内容,使其适应横屏显示。

/* 假设页面容器为 .container */
.container {
  width: 100vh; /* 将宽度设置为屏幕高度 */
  height: 100vw; /* 将高度设置为屏幕宽度 */
  transform: rotate(90deg) translateY(-100%);
  transform-origin: left top;
  position: absolute;
  top: 0;
  left: 0;
}

2. 使用 uni.onWindowResize 监听屏幕变化

uni-app 提供了 uni.onWindowResize 方法,可以监听屏幕尺寸的变化,并根据屏幕方向调整布局。

uni.onWindowResize((res) => {
  if (res.size.windowWidth > res.size.windowHeight) {
    // 横屏
    console.log('横屏');
    // 调整布局
  } else {
    // 竖屏
    console.log('竖屏');
    // 调整布局
  }
});

3. 使用 uni.setScreenOrientation 强制横屏

你可以使用 uni.setScreenOrientation 方法强制设置屏幕方向为横屏。

uni.setScreenOrientation({
  orientation: 'landscape'
});

4. 使用 pageOrientation 配置

pages.json 中,你可以通过 pageOrientation 配置页面方向。

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "pageOrientation": "landscape" // 强制横屏
      }
    }
  ]
}

5. 使用 viewport 元标签

通过设置 viewport 元标签,可以调整页面的缩放和布局。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">

6. 使用 uni.getSystemInfo 获取屏幕信息

你可以通过 uni.getSystemInfo 获取屏幕信息,并根据屏幕方向调整布局。

uni.getSystemInfo({
  success: function (res) {
    if (res.windowWidth > res.windowHeight) {
      // 横屏
      console.log('横屏');
      // 调整布局
    } else {
      // 竖屏
      console.log('竖屏');
      // 调整布局
    }
  }
});

7. 使用 CSS Media Queries

通过 CSS 媒体查询,可以根据屏幕方向应用不同的样式。

[@media](/user/media) screen and (orientation: landscape) {
  /* 横屏样式 */
  .container {
    width: 100vh;
    height: 100vw;
  }
}

[@media](/user/media) screen and (orientation: portrait) {
  /* 竖屏样式 */
  .container {
    width: 100vw;
    height: 100vh;
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!