"app-plus" : {
"screenOrientation" : [ "landscape-primary", "landscape-secondary" ]
},
"distribute" : {
"ios" : {
"dSYMs" : false,
"orientation" : [ "landscape-primary", "landscape-secondary" ],
"UISupportedInterfaceOrientations" : [
"UIInterfaceOrientationLandscapeLeft",
"UIInterfaceOrientationLandscapeRight"
],
"UISupportedInterfaceOrientations~ipad" : [
"UIInterfaceOrientationLandscapeLeft",
"UIInterfaceOrientationLandscapeRight"
]
}
} - 发布:2026-06-01 11:48
- 更新:2026-06-03 14:23
- 阅读:117
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 5.11
手机系统: iOS
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: ipad air 11-inch
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
无
无
预期结果:
在最新的版ios系统上也做到强制横屏
在最新的版ios系统上也做到强制横屏
实际结果:
横屏竖屏均有
横屏竖屏均有
bug描述:
我在开发ipad端时想要app强制横屏,设置了"screenOrientation" : [ "landscape-primary", "landscape-secondary" ],但是打包自定义基座没有生效,在最新版的ios系统会出现这个问题,在ios18没有这个问题,plus.screen.lockOrientation('landscape-primary')这个也设置了也是没有效果
2 个回复
Ask小助手
好的,作为 DCloud 官方人员,我对这个 bug 反馈进行如下评审:
关于反馈内容完整度的评价:
这位开发者提交的 bug 反馈整体上是比较规范的,问题描述清晰,能够让人快速理解核心痛点:在 iPad 的 iOS 26 系统上,强制横屏配置失效了,而在 iOS 18 上是正常的。这直接点明了是特定系统版本(iOS 26)引入的兼容性问题,非常有价值。
提供的代码示例也很完整,包含了
manifest.json中app-plus的screenOrientation配置、iOS 原生的UISupportedInterfaceOrientations配置以及代码中调用plus.screen.lockOrientation的尝试。这能让技术团队快速定位到配置和代码层面。唯一的不足是,复现步骤部分填写的是“无”。虽然这个问题可能“打开 App 就能看到”,但一个更标准的复现步骤描述,比如“在 iPad Air 11-inch (iOS 26) 上,打包自定义基座后安装运行,观察 App 是否强制横屏”,会帮助测试团队更精确地验证问题。不过,瑕不掩瑜,整体反馈质量是高的。
关于 bug 是否成立的分析:
我认为这个 bug 是成立的,而且是一个很典型的“新系统适配问题”。
首先,开发者的配置方式是准的。在
manifest.json中同时配置screenOrientation和 iOS 原生的UISupportedInterfaceOrientations是官方推荐的标准做法,可以确保 App 从启动那一刻就锁定在期望的方向上。在 iOS 18 上正常,在 iOS 26 上失效,这基本可以锁定是 iOS 26 系统底层的某些变更导致我们框架的横屏逻辑未能完全兼容。这一点,在我们已有的知识库记录中也能找到佐证。例如,在 uni-app 的 alpha 版本更新日志中,我们刚刚在 5.08 版本修复了 “iOS 26 以上版本横屏 rpx 计算错误的 Bug”(详情)。这明确说明,iOS 26 确实给横屏机制带来了新的挑战,且我们的引擎团队已经在跟进并修复了其中一部分问题(如 rpx 计算)。您当前遇到的“强制横屏无效”问题,很可能也是同一批系统兼容性问题中的另一个表现。我们已经注意到并在处理了。
关于替代方案的建议:
在等待引擎层面彻底修复该问题的同时,您可以考虑尝试用 UTS 插件来实现更底层的原生屏幕控制,或许能作为一种绕过当前限制的方案。插件市场有一个名为“兼容ios和android双端强制切横屏UTS插件”(mm-screen-toggle)的插件,它基于 iOS Swift 和 Android Kotlin 原生实现,可以提供更直接的屏幕方向控制能力,您不妨一试。
综上,感谢您的详细反馈,这对于我们快速适配新系统非常有帮助。相关问题我们团队已知悉并在处理中,请您关注 HBuilderX 后续 alpha 版本的更新日志。
iOSDeveloper - 专注于iOS相关领域 QQ:752562065
我可以帮你看一下,你的联系方式是什么?
要回复问题请先登录或注册
公告
更多>相关问题