在 UniApp 中实现横屏模式,可以通过以下两种方法实现:
方法一:全局配置横屏(推荐)
在 pages.json 中配置全局屏幕方向为横屏:
{
"globalStyle": {
"pageOrientation": "landscape"
}
}
此配置会让所有页面默认横屏显示。
方法二:单个页面配置横屏
在 pages.json 中为特定页面配置横屏:
{
"pages": [
{
"path": "pages/landscape/landscape",
"style": {
"pageOrientation": "landscape"
}
}
]
}
注意事项:
-
平台差异:
- iOS 可能需要额外配置
manifest.json 中的 screenOrientation 字段
- 部分 Android 设备可能需要配置权限
-
动态切换:
- 如需运行时切换横竖屏,可使用
plus.screen.lockOrientation 方法:
// 锁定横屏
plus.screen.lockOrientation('landscape-primary');
// 锁定竖屏
plus.screen.lockOrientation('portrait-primary');
-
CSS适配:
- 横屏模式下需要重新调整页面布局样式
- 建议使用 flex 布局或媒体查询适配不同方向
-
打包配置:
在 manifest.json 中配置支持的屏幕方向:
"app-plus": {
"screenOrientation": [
"landscape-primary",
"landscape-secondary"
]
}
常见问题:
- 横屏后页面内容显示异常:检查 CSS 布局适配
- 部分平台不生效:检查 manifest 配置和设备权限
- 需要横竖屏切换:结合使用锁定方向 API
建议优先使用方法一或方法二的配置方式,这是最稳定可靠的横屏实现方案。