1***@163.com
1***@163.com
  • 发布:2025-10-10 15:48
  • 更新:2025-10-10 16:00
  • 阅读:53

【报Bug】manifest.json 中设置screenOrientation 在ios和安卓上表现不一样

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.82

手机系统: iOS

手机系统版本号: iOS 17

手机厂商: 苹果

手机机型: ios

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

page.json中 pageOrientation 设置为auto,仅仅将manifest.json 中的screenOrientation 设置为portrait-primary,测试发现,安卓可以正常调用plus.screen.lockOrientation('landscape-primary') ,但是ios在调用后,还是无法真正横屏 以下是该配置下,ios出现的界面bu

预期结果:

预期让ios的在page.json中 pageOrientation 设置为auto ,manifest.json 中的screenOrientation 设置为portrait-primary 时,调用plus.screen.lockOrientation('landscape-primary') 是,表现效果和安卓一样,能正常横屏,我这样配置仅仅是为了解决启动页在未锁定方向的手机上启动时,会造成第一个页面rpx计算值出错的问题

实际结果:

ios调用plus.screen.lockOrientation('landscape-primary') 无法正常横屏

bug描述:

发现vue2的老项目,存在用户在不锁定屏幕方向的情况下打开app,启动页偶现横屏启动,导致第一个app页面,即使在onload时限定竖屏方向,rpx值还是以横屏的宽度为基准计算,所以在manifest.json 中限定了screenOrientation 只为 "portrait-primary" ,因为项目中某些页面有按钮可以让用户自由切换横竖屏,所以在pages.json 中的pageOrientation 为auto

实际测试效果,发现这些配置都必须要重新打基座才能生效,并且 如果pages.json 中pageOrientation 限定竖屏,那么ios和安卓即使调用 plus.screen.lockOrientation('landscape-primary'); 整个页面会只显示一 半,不是真正的横屏效果 。

所以page.json中 pageOrientation 设置为auto,仅仅将manifest.json 中的screenOrientation 设置为portrait-primary,测试发现,安卓可以正常调用plus.screen.lockOrientation('landscape-primary') ,但是ios在调用后,还是无法真正横屏 以下是该配置下,ios出现的界面bug

2025-10-10 15:48 负责人:DCloud_App_Array 分享
已邀请:
1***@163.com

1***@163.com (作者)

再补充一点,我的时nvue的页面,vue页面还没做测试

要回复问题请先登录注册