文晓港
文晓港
  • 发布:2020-06-01 10:58
  • 更新:2021-04-19 16:20
  • 阅读:1160

【报Bug】 h5端写PC时 ,getSystemInfoSync 获取 windowWidth错误

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.15.1 Beta版(19B77a)

HBuilderX类型: 正式

HBuilderX版本号: 2.7.5

浏览器平台: Chrome

浏览器版本: 83.0.4103.61(正式版本)

项目创建方式: HBuilderX

操作步骤:

uni.getSystemInfoSync()

预期结果:

uni.getSystemInfoSync().screenWidth = 2560;
uni.getSystemInfoSync().screenHeight = 1440;

实际结果:

uni.getSystemInfoSync().screenWidth = 1440;
uni.getSystemInfoSync().screenHeight = 2560;

bug描述:

在做PC应用时screenHeight和screenWidth取反了,实验后得知是screenWidth会取屏幕宽高的最小值,screenHeight会取屏幕的最大值,这在移动端是可行的,但在做PC的时候不合理。对应的windowWidth也会在PC的场景取到错误的值。

2020-06-01 10:58 负责人:DCloud_UNI_GSQ 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

bug确认,已经加分,后续修复
临时解决方案:如是写业务代码,可以条件编译直接使用 window.screen

luojl

luojl

在pc端我是通过使用这个函数获取变化宽度的,以下是代码
//初始屏幕宽度
//.banner为目标view的类名
var wdwidth = 0;
uni.createSelectorQuery().select('.banner').boundingClientRect(data => {
wdwidth = data.width
}).exec();

//屏幕变化获取宽度
uni.onWindowResize((res) => {
uni.createSelectorQuery().select('.banner').boundingClientRect(data => {
wdwidth = data.width
}).exec();
});

该问题目前已经被锁定, 无法添加新回复