fusions
fusions
  • 发布:2026-05-29 15:42
  • 更新:2026-05-29 15:43
  • 阅读:39

【报Bug】uni.getSystemInfoSync() API在PC端vue2和vue3不兼容

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows 10

HBuilderX类型: 正式

HBuilderX版本号: 5.07

浏览器平台: Chrome

浏览器版本: 148.0.7778.179

项目创建方式: HBuilderX

操作步骤:

下载demo运行在浏览器中查看打印的参数,在manifest.json中更换vue版本2、3,更改后重新运行即可

预期结果:

表现一致,vue2表现是没有问题的,vue3表现不对

实际结果:

vue3中windowTop: 0没有获取和pages.json中配置的高度,windowHeiht没有没有减去配置的高度,原因可能是windowTop没有获取到

bug描述:

uni.getSystemInfoSync() API在vue2和vue3表现不一致,不兼容,目前我只测试了在PC的问题,可以下载demo运行在浏览器中查看打印的参数,在manifest.json中更换vue版本2、3,更改后重新运行即可

2026-05-29 15:42 负责人:无 分享
已邀请:
Ask小助手

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 版,测试该问题是否已在此版本中得到解决。

内容为 AI 生成,仅供参考

要回复问题请先登录注册