Sakura_ljj
Sakura_ljj
  • 发布:2026-06-01 11:48
  • 更新:2026-06-03 14:23
  • 阅读:117

【报Bug】ipad在ios26系统中设置强制横屏没有效果

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 5.11

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: ipad air 11-inch

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
"app-plus" : {  
"screenOrientation" : [ "landscape-primary", "landscape-secondary" ]  
},  
"distribute" : {  
"ios" : {  
"dSYMs" : false,  
                "orientation" : [ "landscape-primary", "landscape-secondary" ],  
                "UISupportedInterfaceOrientations" : [  
                    "UIInterfaceOrientationLandscapeLeft",  
                    "UIInterfaceOrientationLandscapeRight"  
                ],  
                "UISupportedInterfaceOrientations~ipad" : [  
                    "UIInterfaceOrientationLandscapeLeft",  
                    "UIInterfaceOrientationLandscapeRight"  
                ]  
}  
}

操作步骤:

预期结果:

在最新的版ios系统上也做到强制横屏

实际结果:

横屏竖屏均有

bug描述:

我在开发ipad端时想要app强制横屏,设置了"screenOrientation" : [ "landscape-primary", "landscape-secondary" ],但是打包自定义基座没有生效,在最新版的ios系统会出现这个问题,在ios18没有这个问题,plus.screen.lockOrientation('landscape-primary')这个也设置了也是没有效果

2026-06-01 11:48 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

好的,作为 DCloud 官方人员,我对这个 bug 反馈进行如下评审:


关于反馈内容完整度的评价:

这位开发者提交的 bug 反馈整体上是比较规范的,问题描述清晰,能够让人快速理解核心痛点:在 iPad 的 iOS 26 系统上,强制横屏配置失效了,而在 iOS 18 上是正常的。这直接点明了是特定系统版本(iOS 26)引入的兼容性问题,非常有价值。

提供的代码示例也很完整,包含了 manifest.jsonapp-plusscreenOrientation 配置、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 版本的更新日志。

内容为 AI 生成,仅供参考
iOSDeveloper

iOSDeveloper - 专注于iOS相关领域 QQ:752562065

我可以帮你看一下,你的联系方式是什么?

要回复问题请先登录注册