uni-app uni.getSystemInfoSync无法获取设备信息

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app uni.getSystemInfoSync无法获取设备信息

信息类别 详细信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win11
HBuilderX类型 Alpha
HBuilderX版本号 3.4.12
手机系统 Android
手机系统版本号 Android 10
手机厂商 小米
手机机型 红米k20pro尊享版
页面类型 vue
vue版本 vue3
打包方式 离线
项目创建方式 HBuilderX

操作步骤:

在初始化App.vue文件中使用,使用华为平板鸿蒙2.0以及红米k20pro尊享版 安卓10 调试时都无法获取到设备信息,会直接报错

预期结果:

···TypeError: Cannot read properties of undefined (reading 'toLowerCase')
at
at Object.getSystemInfoSync ()
at
at hn ()
at Ut ()
at a.__weh.a.__weh ()
at Pi ()
at Object.to [as render] ()
at Object.we [as render] ()
at Object.mountPage ()···

实际结果:

直接会报错

bug描述:

uni.getSystemInfo报错无法获取设备信息

相关链接:


7 回复

问题找到了,不是当前页面得问题。

我也出现同样问题,请问什么导致的

我也出现同样问题,请问什么导致的

3.4.15 已修复

有时候获取不到 13 14 的机型信息

在 uni-app 中,uni.getSystemInfoSync 是一个同步获取系统信息的 API,通常用于获取设备的屏幕尺寸、操作系统、设备型号等信息。如果你发现 uni.getSystemInfoSync 无法获取设备信息,可能是以下几个原因导致的:

1. 运行环境问题

  • H5 环境:在 H5 环境中,uni.getSystemInfoSync 可能无法获取到完整的设备信息,因为 H5 环境受限于浏览器的能力,无法获取到设备的详细信息。
  • 小程序环境:在小程序环境中,uni.getSystemInfoSync 通常可以正常获取设备信息。如果无法获取,可能是小程序平台本身的问题。
  • App 环境:在 App 环境中,uni.getSystemInfoSync 应该可以正常获取设备信息。如果无法获取,可能是 App 的配置或运行环境有问题。

2. 代码问题

  • 代码错误:检查代码中是否有拼写错误或逻辑错误。例如,确保你调用的是 uni.getSystemInfoSync 而不是其他类似的 API。
  • 异步问题uni.getSystemInfoSync 是同步方法,不需要使用 awaitthen。如果你错误地将其当作异步方法使用,可能会导致问题。

3. 权限问题

  • App 权限:在 App 环境中,某些设备信息可能需要特定的权限才能获取。确保你的 App 已经获取了必要的权限。
  • 小程序权限:在小程序环境中,某些设备信息可能需要用户授权才能获取。确保你的小程序已经获取了必要的权限。

4. 平台差异

  • 平台兼容性:不同平台(如微信小程序、支付宝小程序、H5、App 等)对 uni.getSystemInfoSync 的支持程度可能有所不同。某些平台可能不支持某些字段或返回的信息较少。

5. 调试方法

  • 打印日志:在调用 uni.getSystemInfoSync 后,打印返回的结果,查看具体返回了哪些信息。
    const systemInfo = uni.getSystemInfoSync();
    console.log(systemInfo);
  • 检查返回值:根据打印的日志,检查返回的对象中是否包含你需要的设备信息。

6. 解决方案

  • H5 环境:如果是在 H5 环境中无法获取设备信息,可以考虑使用其他方法(如 navigator.userAgent)来获取部分设备信息。
  • App 环境:如果是在 App 环境中无法获取设备信息,可以检查 App 的配置,确保已经获取了必要的权限。
  • 小程序环境:如果是在小程序环境中无法获取设备信息,可以检查小程序的权限设置,确保已经获取了必要的权限。

示例代码

// 获取系统信息
const systemInfo = uni.getSystemInfoSync();
console.log(systemInfo);

// 获取设备型号
const model = systemInfo.model;
console.log('设备型号:', model);

// 获取操作系统版本
const system = systemInfo.system;
console.log('操作系统:', system);

// 获取屏幕宽度和高度
const screenWidth = systemInfo.screenWidth;
const screenHeight = systemInfo.screenHeight;
console.log('屏幕宽度:', screenWidth, '屏幕高度:', screenHeight);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!