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

Image


更多关于manifest.json 中设置screenOrientation 在uni-app ios和安卓上表现不一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于manifest.json 中设置screenOrientation 在uni-app ios和安卓上表现不一样的实战教程也可以访问 https://www.itying.com/category-93-b0.html


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

回到顶部