在 UniApp 开发的 App 在 iPad 上默认竖屏展示,主要是因为 UniApp 默认配置为竖屏模式,且未针对 iPad 进行横屏适配。以下是原因及解决方案:
原因分析
- 默认配置限制:UniApp 项目默认锁定为竖屏(portrait),适用于手机端。
- 未配置横屏支持:iPad 屏幕较大,通常支持横屏,但需手动开启多方向支持。
- 页面级未适配:部分页面可能未设置横屏布局,导致旋转后显示异常。
解决方案
1. 全局配置横屏支持
在 pages.json 中全局开启屏幕旋转:
{
  "globalStyle": {
    "pageOrientation": "auto"
  }
}
或针对单个页面配置:
{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "pageOrientation": "auto"
      }
    }
  ]
}
2. 原生配置修改(如需强制横屏)
- Android:在 mainfest.json的"app-plus"->"screenOrientation"中设置["landscape-primary"]。
- iOS:需在 Xcode 中勾选横屏方向(Landscape Left/Right)。
3. 响应式布局适配
通过 CSS 媒体查询适配横屏样式:
@media screen and (orientation: landscape) {
  /* 横屏样式调整 */
}
4. 使用 API 动态控制
通过 uni.setScreenOrientation 动态切换方向:
// 强制横屏
uni.setScreenOrientation({
  orientation: 'landscape'
});
注意事项
- 测试时需确保 iPad 系统未开启「方向锁定」。
- 横屏后需检查页面布局是否正常,避免拉伸或错位。
通过以上配置,即可实现 iPad 横屏展示。