uniapp +vue3 横屏 配置
uniapp Vue3 完整横屏配置教程(分 3 种场景,一步一步操作)
场景 1:单个页面横屏(推荐,App / 微信小程序 / H5 全都支持)
步骤 1:找到当前页面文件夹
页面结构示例
plaintext
pages/
index/
index.vue 页面代码
index.json 页面配置文件
步骤 2:打开同目录的 index.json,粘贴代码
json
{
"navigationBarTitleText": "横屏页面",
"pageOrientation": "landscape"
}
参数说明:
landscape:横屏,手机左右翻转都适配landscape-primary:只允许正向横屏,不能反向portrait:竖屏(默认)auto:自动跟随手机旋转
步骤 3:保存重新编译生效
- 小程序:重新编译
- App 真机 / 模拟器:重新运行
- H5:刷新页面
场景 2:整个 App 全部页面强制横屏(仅 App 端生效,小程序无效)
步骤 1:项目根目录打开 manifest.json
步骤 2:切换到【源码视图】,找到 app-plus 节点
json
{
"app-plus": {
"screenOrientation": "landscape",
// 其他原有配置不动
"usingComponents": {}
}
}
步骤 3:保存,重新云打包 / 本地真机运行才会生效
注意:此配置只对安卓、iOS App 生效,微信 / 支付宝小程序不识别
场景 3:进入页面动态切换横屏,离开恢复竖屏(仅 App 端)
页面
.vue 文件 <script setup> 完整代码vue
<script setup lang="ts">
import { onMounted, onUnmounted } from 'vue'
onMounted(() => {
// #ifdef APP-PLUS
// 锁定横屏
plus.screen.lockOrientation('landscape')
// #endif
})
onUnmounted(() => {
// #ifdef APP-PLUS
// 退出页面恢复竖屏
plus.screen.lockOrientation('portrait')
// #endif
})
</script>
#ifdef APP-PLUS 是条件编译,防止小程序 / H5 运行时报错。补充:H5 端全局横屏配置
- 项目根目录
index.html - 在
<head>内添加 meta 标签
html
预览
<meta name="screen-orientation" content="landscape">
<meta name="x5-orientation" content="landscape">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
样式适配(横屏必加,防止内容溢出)
页面 style 中写入:
css
page {
width: 100vw;
height: 100vh;
overflow: hidden;
margin: 0;
padding: 0;
}
常见问题
- 小程序动态代码改横屏无效:小程序只能 json 静态配置,js 无法切换
- manifest 改完不生效:App 需要重新运行 / 打包,热更新不生效
- 页面变形:加上上面的 page 全屏样式

浙公网安备 33010602011771号