onLaunch: function() {
console.log('App Launch');
plus.screen.lockOrientation('portrait-primary');
}
- 发布:2021-12-06 20:18
- 更新:2023-08-05 20:15
- 阅读:1959
【报Bug】onLaunch时 plus.screen.lockOrientation('portrait-primary') 屏幕锁定无效
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX类型: 正式
HBuilderX版本号: 3.2.16
手机系统: Android
手机系统版本号: Android 11
手机厂商: 小米
手机机型: 小米10至尊 miui12.5.21.11.3开发版
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
1.手机横着放,打开官方应用,页面错乱
- 手机竖屏放置,打开官方应用,显示正常。
1.手机横着放,打开官方应用,页面错乱
- 手机竖屏放置,打开官方应用,显示正常。
预期结果:
应用正常显示
应用正常显示
实际结果:
未能正常判断屏幕方向
未能正常判断屏幕方向
bug描述:
虽然配置了,plus.screen.lockOrientation('portrait-primary');,但是因为手机本身没有进行屏幕锁定,所以未能正确的判断屏幕尺寸。
操作步骤(手机本身未开启方向锁定)(app为官方Android版hello uni-app。自己创建的应用测试也存在同样问题):
1.手机横着放,打开官方应用,页面错乱。怀疑未能正确判断宽高。
- 手机竖屏放置,打开官方应用,显示正常。
详情见zip视频
哈哈柚 (作者)
分别为视频和代码。
复现步骤:
创建一个uni-app默认模板。将首页vue改为nvue,app.vue中新增
plus.screen.lockOrientation('portrait-primary');
详见test-1207zip包。
-
哈哈柚 (作者)
回复 DCloud_Android_ST: 好的,https://uniapp.dcloud.io/README 官方快速体验中的安卓版本,横屏放置也会出现类似的问题,如第一次视频那样。
2021-12-07 20:00
启用 dynamicRpx,可让 rpx 适配屏幕方向或大小的变化
-
哈哈柚 (作者)
感谢,但测试后发现不能解决所描述问题。我本身在manifest.json配置了 "screenOrientation" : [ "portrait-primary" ],也在app.vue里写了 plus.screen.lockOrientation('portrait-primary');但是app启动的时候手机是横屏放置的。进入应用后页面是竖屏排版,但是从结果来看,似乎是以屏幕高度作为了屏幕宽度为750rpx来计算。配置dynamicRpx:true后,首页也没有再次进行重新计算排版(动态 rpx,屏幕大小变化会重新渲染 rpx ),似乎没触发变化
2021-12-14 20:41
-
回复 k***@makeitbetter.cn: 只在 manifest.json 配置 screenOrientation 未成功锁定竖屏吗?
2021-12-14 20:53
-
回复 k***@makeitbetter.cn: 你云打包是了没 配置dynamicRpx=true 在要在globalStyle中配置
2021-12-15 12:42
哈哈柚 (作者)
已在下方提供基础代码。可直接运行到手机进行查看。视频操作上第一次正常握持手机,第二次将手机横置。
2021-12-07 19:51