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

- 发布:2025-10-10 15:48
- 更新:2025-10-10 16:00
- 阅读:53
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 4.82
手机系统: iOS
手机系统版本号: iOS 17
手机厂商: 苹果
手机机型: ios
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
预期让ios的在page.json中 pageOrientation 设置为auto ,manifest.json 中的screenOrientation 设置为portrait-primary 时,调用plus.screen.lockOrientation('landscape-primary') 是,表现效果和安卓一样,能正常横屏,我这样配置仅仅是为了解决启动页在未锁定方向的手机上启动时,会造成第一个页面rpx计算值出错的问题
预期让ios的在page.json中 pageOrientation 设置为auto ,manifest.json 中的screenOrientation 设置为portrait-primary 时,调用plus.screen.lockOrientation('landscape-primary') 是,表现效果和安卓一样,能正常横屏,我这样配置仅仅是为了解决启动页在未锁定方向的手机上启动时,会造成第一个页面rpx计算值出错的问题
实际结果:
ios调用plus.screen.lockOrientation('landscape-primary') 无法正常横屏
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
