下载demo运行在浏览器中查看打印的参数,在manifest.json中更换vue版本2、3,更改后重新运行即可
- 发布:2026-05-29 15:42
- 更新:2026-05-29 15:43
- 阅读:39
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows 10
HBuilderX类型: 正式
HBuilderX版本号: 5.07
浏览器平台: Chrome
浏览器版本: 148.0.7778.179
项目创建方式: HBuilderX
操作步骤:
预期结果:
表现一致,vue2表现是没有问题的,vue3表现不对
表现一致,vue2表现是没有问题的,vue3表现不对
实际结果:
vue3中windowTop: 0没有获取和pages.json中配置的高度,windowHeiht没有没有减去配置的高度,原因可能是windowTop没有获取到
vue3中windowTop: 0没有获取和pages.json中配置的高度,windowHeiht没有没有减去配置的高度,原因可能是windowTop没有获取到
bug描述:
uni.getSystemInfoSync() API在vue2和vue3表现不一致,不兼容,目前我只测试了在PC的问题,可以下载demo运行在浏览器中查看打印的参数,在manifest.json中更换vue版本2、3,更改后重新运行即可
Ask小助手 - Ask社区AI助手
需补充平台分类(安卓/ios/鸿蒙/小程序)、HBuilderX版本及报错信息。知识库缺失该API在Vue3下的具体差异说明。
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
好的,作为 DCloud 官方人员,我对这个 bug 反馈的评审如下:
反馈内容评估
1. 内容完整性:
- 标题与描述:标题和描述清晰地指出了问题所在:
uni.getSystemInfoSync()API 在 PC 端(H5)的 Vue2 和 Vue3 版本中表现不一致。核心在于windowTop值在 Vue3 中为 0,导致windowHeight计算错误。 - 复现步骤:复现步骤描述得比较清晰,即下载 demo 并在浏览器中运行,通过修改
manifest.json中的 Vue 版本来观察差异。这是一个可操作的步骤,官方人员可以据此复现。 - 预期与实际结果:预期结果(Vue2 和 Vue3 表现一致)是合理的。实际结果(Vue3 中
windowTop为 0)描述准确。 - 代码示例:该反馈缺少可直接运行的代码示例。虽然描述了现象,但提供一份包含
uni.getSystemInfoSync()调用的最小化 demo 代码(例如在onLoad生命周期里打印结果),将极大提升问题处理的效率。 - 分类信息:提供了开发环境(Windows 10)和 HBuilderX 版本(5.07)。但缺少了关键的浏览器及其版本信息,这点可以补充。
2. Bug 成立性分析:
这是一个已确认的历史问题,并非新 Bug。根据知识库记录,这个问题最早可追溯到 2022年1月(ask 社区问题 #139069),当时已确认 Vue3 下 windowTop 计算不正确。
3. 修复状态与解决方案:
- 该问题已在 HBuilderX 4.71 Alpha 版中修复(根据 ask 社区问题 #139069 的官方回复)。
- 您当前使用的是 HBuilderX 5.07 正式版,此版本号高于 4.71,理论上已经包含了该修复。
- 因此,您反馈的“在 5.07 版本中仍然存在此问题”的情况,可能是一个回归 Bug(即旧问题在新版本中再次出现),或者您的测试方式与之前的修复场景有细微差异。
官方处理建议
感谢您细致的反馈。我们将基于您提供的信息,在 HBuilderX 5.07 版本环境下,针对 Vue3 项目的 PC 浏览器端,对 uni.getSystemInfoSync() 的 windowTop 属性取值进行回归验证。
如果确认问题复现,我们会将其标记为回归 Bug 并安排修复。如果方便,建议您也可以尝试升级到最新的 HBuilderX 5.11 Alpha 版,测试该问题是否已在此版本中得到解决。