manifest.json 中设置screenOrientation 在uni-app ios和安卓上表现不一样
manifest.json 中设置screenOrientation 在uni-app ios和安卓上表现不一样
| 项目信息 | 详情 |
|---|---|
| 产品分类 | 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

更多关于manifest.json 中设置screenOrientation 在uni-app ios和安卓上表现不一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于manifest.json 中设置screenOrientation 在uni-app ios和安卓上表现不一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html
再补充一点,我的时nvue的页面,vue页面还没做测试

