# uni.getSystemInfo(options)

HBuilderX4.13-alpha版本,uniPlatform属性在 app 平台临时调整过,由 app 改为 app-androidapp-ios,HBuilderX 4.14-alpha版本已回撤此调整。如果开发者使用HBuilderX4.13-alpha版发布项目时使用了uni-id-common、uni-id、uni-id-pages或uni-id-pages-x,则需要分别升级到如下版本来兼容此次临时调整:uni-id@3.3.32、uni-id-common@1.0.17、uni-id-pages@1.1.20、uni-id-pages-x@1.1.1

异步获取系统信息

# getSystemInfo 兼容性

Web 微信小程序 Android iOS
4.0 4.41 3.9 4.11

uni-app 提供了异步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2个API获取系统信息。

按照运行环境层级排序,从底层向上,systemInfo有6个概念:

  • device:运行应用的设备,如iphone、huawei
  • os:设备的操作系统,如 ios、andriod、windows、mac、linux
  • rom:基于操作系统的定制,Android系统特有概念,如miui、鸿蒙
  • host:运行应用的宿主程序,即OS和应用之间的运行环境,如浏览器、微信等小程序宿主、集成uniMPSDK的App
  • uni:uni-app框架相关的信息,如uni-app框架的编译器版本、运行时版本
  • app:开发者的应用相关的信息,如应用名称、版本

因本API涉及的信息越来越多,查询速度会逐渐变慢。由此拆解分出3个新API,uni.getDeviceInfouni.getAppBaseInfouni.getWindowInfo。新API包含的信息更多。

微信小程序已经不推荐使用getSystemInfo,建议使用上述分拆的3个API。

# 参数

名称 类型 必填 默认值 兼容性 描述
options GetSystemInfoOptions - -
名称 类型 必备 默认值 兼容性 描述
success (result: GetSystemInfoResult) => void null
接口调用成功的回调函数
fail (result: UniError) => void null
接口调用失败的回调函数
complete (result: any) => void null
接口调用结束的回调函数(调用成功、失败都会执行)

# GetSystemInfoResult 的属性值

名称 类型 必备 默认值 兼容性 描述
SDKVersion string -
客户端基础库版本
appId string -
manifest.json 中应用appid。
appLanguage string -
应用设置的语言。
appName string -
manifest.json 中应用名称。
appVersion string -
manifest.json 中应用版本名称。
appVersionCode string -
manifest.json 中应用版本名号。
appWgtVersion string -
应用资源(wgt)的版本名称。
browserName string -
浏览器名称。App 端是系统 webview 的名字,比如 wkwebview、chrome。小程序端为空
browserVersion string -
浏览器版本、webview 版本。
deviceId string -
设备 ID
deviceBrand string -
设备品牌。如:applehuawei
deviceModel string -
设备型号
deviceType string -
设备类型。
合法值 兼容性 描述
phone - -
pad - -
tv - -
watch - -
pc - -
undefined - -
car - -
vr - -
appliance - -
devicePixelRatio number -
设备像素比
deviceOrientation string -
设备方向。
合法值 兼容性 描述
portrait - 纵向
landscape - 横向
osName string -
系统名称
合法值 兼容性 描述
ios - -
android - -
harmonyos - -
macos - -
windows - -
linux - -
osVersion string -
操作系统版本。如 ios 版本,andriod 版本
osLanguage string -
操作系统语言
osTheme string -
操作系统主题
合法值 兼容性 描述
light - -
dark - -
screenWidth number -
屏幕宽度,单位为px
screenHeight number -
屏幕高度,单位为px
statusBarHeight number -
状态栏的高度,单位为px
safeArea SafeArea -
在竖屏正方向下的安全区域
名称 类型 必备 默认值 兼容性 描述
left number -
安全区域左上角横坐标,单位为px
right number -
安全区域右下角横坐标,单位为px
top number -
安全区域左上角纵坐标,单位为px
bottom number -
安全区域右下角纵坐标,单位为px
width number -
安全区域的宽度,单位为px
height number -
安全区域的高度,单位为px
safeAreaInsets SafeAreaInsets -
在竖屏正方向下的安全区域插入位置
名称 类型 必备 默认值 兼容性 描述
left number -
安全区域左侧插入位置(距离左边边界距离),单位为px
right number -
安全区域右侧插入位置(距离右边边界距离),单位为px
top number -
安全区顶部插入位置(距离顶部边界距离),单位为px
bottom number -
安全区域底部插入位置(距离底部边界距离),单位为px
ua string -
用户标识。小程序端为空
uniCompilerVersion string -
uni 编译器版本。
uniPlatform string -
uni-app 运行平台,与条件编译平台相同。
合法值 兼容性 描述
app - -
web - -
mp-weixin - -
mp-alipay - -
mp-baidu - -
mp-toutiao - -
mp-lark - -
mp-qq - -
mp-kuaishou - -
mp-jd - -
mp-360 - -
quickapp-webview - -
quickapp-webview-union - -
quickapp-webview-huawei - -
uniRuntimeVersion string -
uni 运行时版本。
uniCompilerVersionCode number -
uni 编译器版本号。
uniRuntimeVersionCode number -
uni 运行时版本号。
romName string -
rom 名称。Android 部分机型获取不到值。iOS 恒为 ios
romVersion string -
rom 版本号。Android 部分机型获取不到值。iOS 为操作系统版本号(同 osVersion)。
windowWidth number -
可使用窗口宽度,单位为px
windowHeight number -
可使用窗口高度,单位为px
windowTop number -
内容区域距离顶部的距离(同CSS变量 --window-top),单位为px
windowBottom number -
内容区域距离底部的距离(同CSS变量 --window-bottom),单位为px
osAndroidAPILevel number -
Android 系统API库的版本。
appTheme string -
当前App的主题
合法值 兼容性 描述
light - -
dark - -
auto - -
albumAuthorized boolean -
需要基础库: 2.6.0

允许微信使用相册的开关(仅 iOS 有效)
benchmarkLevel number -
需要基础库: 1.8.0

设备性能等级(仅 Android)。取值为:x2 或 0(该设备无法运行小游戏),-1(性能未知),>=1(设备性能值,该值越高,设备性能越好)
注意:性能等级当前仅反馈真机机型,暂不支持 IDE 模拟器机型
bluetoothEnabled boolean -
需要基础库: 2.6.0

蓝牙的系统开关
cameraAuthorized boolean -
需要基础库: 2.6.0

允许微信使用摄像头的开关
enableDebug boolean -
需要基础库: 2.15.0

是否已打开调试。可通过右上角菜单或 uni.setEnableDebug 打开调试。
fontSizeSetting number -
需要基础库: 1.5.0

用户字体大小(单位px)。以微信客户端「我x设置-通用-字体大小」中的设置为准
host GetSystemInfoResultHost -
需要基础库: 2.12.3

当前小程序运行的宿主环境
名称 类型 必备 默认值 兼容性 描述
appId string -
宿主 app 对应的 appId
locationAuthorized boolean -
需要基础库: 2.6.0

允许微信使用定位的开关
locationEnabled boolean -
需要基础库: 2.6.0

地理位置的系统开关
locationReducedAccuracy boolean -
true 表示模糊定位,false 表示精确定位,仅 iOS 支持
microphoneAuthorized boolean -
需要基础库: 2.6.0

允许微信使用麦克风的开关
notificationAlertAuthorized boolean -
需要基础库: 2.6.0

允许微信通知带有提醒的开关(仅 iOS 有效)
notificationAuthorized boolean -
需要基础库: 2.6.0

允许微信通知的开关
notificationBadgeAuthorized boolean -
需要基础库: 2.6.0

允许微信通知带有标记的开关(仅 iOS 有效)
notificationSoundAuthorized boolean -
需要基础库: 2.6.0

允许微信通知带有声音的开关(仅 iOS 有效)
phoneCalendarAuthorized boolean -
需要基础库: 2.19.3

允许微信使用日历的开关
wifiEnabled boolean -
需要基础库: 2.6.0

WixFi 的系统开关
theme string -
需要基础库: 2.11.0

系统当前主题,取值为lightdark,全局配置"darkmode":true时才能获取,否则为 undefined (不支持小游戏)

可选值:
x 'dark': 深色主题;
- 'light': 浅色主题;
合法值 兼容性 描述
dark - -
light - -
version string -
引擎版本号。 已废弃,仅为了向下兼容保留
uniCompileVersionCode number -
uni 编译器版本号。 已废弃,仅为了向下兼容保留
uniCompileVersion string -
uni 编译器版本。 已废弃,仅为了向下兼容保留
system string -
操作系统版本 已废弃,仅为了向下兼容保留
platform string -
客户端平台 已废弃,仅为了向下兼容保留
合法值 兼容性 描述
ios - -
android - -
harmonyos - -
mac - -
windows - -
linux - -
devtools
-
pixelRatio number -
设备像素比 已废弃,仅为了向下兼容保留
model string -
手机型号 已废弃,仅为了向下兼容保留
language string -
程序设置的语言 已废弃,仅为了向下兼容保留
brand string -
手机品牌。 已废弃,仅为了向下兼容保留

注意事项

  • appTheme如取值为auto,代表跟随系统。此时需查询osTheme获取当前到底是light还是dark。
  • 获取OAID、AndroidID等其他设备信息,见插件市场
  • Android端的windowHeight属性是有时机的考量的,如果在全局作用域获取windowHeight,有可能当前Activity还未加载,所以导航栏和Tabbar的高度是不会计算进去的,稳妥起见,建议在onReady或者onPageShow内获取windowheight
  • windowHeight属性是依赖于调用Api时栈顶Page的,比如延迟获取windowHeight,很可能页面已经切换了,这时候获取的高度是新的页面的。
  • 4.25开始,Android端安全区域top调整为手机状态栏高度

# romName 返回值说明

解释
MIUI 小米
EMUI 华为
HarmonyOS 华为鸿蒙
Magic OS 荣耀
ColorOS oppo
Funtouch OS vivo
FLymeOS 魅族
SmartisanOS 锤子

注意:不同rom的版本号规则不同,比如MIUI版本号是V130,而HarmonyOS的版本号是2.0.0

# hostName 返回值说明

解释
WeChat 微信
wxwork 微信企业版
百度宿主平台枚举值列表 百度
alipay 支付宝
amap 高德
DINGTALK 钉钉
UC UC浏览器
QUARK 夸克浏览器
AK 阿里健康
YK 优酷
抖音宿主平台枚举值列表 抖音系列
qq QQ
KUAISHOU 快手

# 示例

hello uni-app x

扫码体验(手机浏览器跳转到App直达页)

Template

Script

<template>
  <!-- #ifdef APP -->
  <scroll-view style="flex: 1">
  <!-- #endif -->
    <view>
      <page-head :title="title"></page-head>
      <view class="uni-common-mt">
        <view class="uni-list">
          <view class="uni-list-cell" v-for="(item, _) in items" style="align-items: center">
            <view class="uni-pd">
              <view class="uni-label" style="width: 180px">{{
                item.label
              }}</view>
            </view>
            <view class="uni-list-cell-db">
              <text class="uni-list-cell-db-text">{{ item.value == '' ? '未获取' : item.value }}</text>
            </view>
          </view>
        </view>
        <view class="uni-padding-wrap">
          <view class="uni-btn-v">
            <button type="primary" @tap="getSystemInfoSync">
              同步获取设备系统信息
            </button>
            <button type="primary" @tap="getSystemInfo" style="margin-top: 20px;">
              异步获取设备系统信息
            </button>
          </view>
        </view>
      </view>
    </view>
  <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
</template>


<style>
  .uni-pd {
    padding-left: 15px;
  }
</style>

# 参见

# uni.getSystemInfoSync()

同步获取系统信息

本API是同步API,仅为上面异步API的同步形式,返回值内容没有区别。但由于本API涉及的查询内容较多,耗时长,一般情况下不推荐同步获取。
如果希望使用同步方式,推荐使用分拆后的API:uni.getDeviceInfouni.getWindowInfouni.getAppBaseInfo

# getSystemInfoSync 兼容性

Web 微信小程序 Android iOS
4.0 4.41 3.9 4.11

# 返回值

类型
GetSystemInfoResult
名称 类型 必备 默认值 兼容性 描述
SDKVersion string -
客户端基础库版本
appId string -
manifest.json 中应用appid。
appLanguage string -
应用设置的语言。
appName string -
manifest.json 中应用名称。
appVersion string -
manifest.json 中应用版本名称。
appVersionCode string -
manifest.json 中应用版本名号。
appWgtVersion string -
应用资源(wgt)的版本名称。
browserName string -
浏览器名称。App 端是系统 webview 的名字,比如 wkwebview、chrome。小程序端为空
browserVersion string -
浏览器版本、webview 版本。
deviceId string -
设备 ID
deviceBrand string -
设备品牌。如:applehuawei
deviceModel string -
设备型号
deviceType string -
设备类型。
合法值 兼容性 描述
phone - -
pad - -
tv - -
watch - -
pc - -
null - -
car - -
vr - -
appliance - -
devicePixelRatio number -
设备像素比
deviceOrientation string -
设备方向。
合法值 兼容性 描述
portrait - 纵向
landscape - 横向
osName string -
系统名称
合法值 兼容性 描述
ios - -
android - -
harmonyos - -
macos - -
windows - -
linux - -
osVersion string -
操作系统版本。如 ios 版本,andriod 版本
osLanguage string -
操作系统语言
osTheme string -
操作系统主题
合法值 兼容性 描述
light - -
dark - -
screenWidth number -
屏幕宽度,单位为px
screenHeight number -
屏幕高度,单位为px
statusBarHeight number -
状态栏的高度,单位为px
safeArea SafeArea -
在竖屏正方向下的安全区域
名称 类型 必备 默认值 兼容性 描述
left number -
安全区域左上角横坐标,单位为px
right number -
安全区域右下角横坐标,单位为px
top number -
安全区域左上角纵坐标,单位为px
bottom number -
安全区域右下角纵坐标,单位为px
width number -
安全区域的宽度,单位为px
height number -
安全区域的高度,单位为px
safeAreaInsets SafeAreaInsets -
在竖屏正方向下的安全区域插入位置
名称 类型 必备 默认值 兼容性 描述
left number -
安全区域左侧插入位置(距离左边边界距离),单位为px
right number -
安全区域右侧插入位置(距离右边边界距离),单位为px
top number -
安全区顶部插入位置(距离顶部边界距离),单位为px
bottom number -
安全区域底部插入位置(距离底部边界距离),单位为px
ua string -
用户标识。小程序端为空
uniCompilerVersion string -
uni 编译器版本。
uniPlatform string -
uni-app 运行平台,与条件编译平台相同。
合法值 兼容性 描述
app - -
web - -
mp-weixin - -
mp-alipay - -
mp-baidu - -
mp-toutiao - -
mp-lark - -
mp-qq - -
mp-kuaishou - -
mp-jd - -
mp-360 - -
quickapp-webview - -
quickapp-webview-union - -
quickapp-webview-huawei - -
uniRuntimeVersion string -
uni 运行时版本。
uniCompilerVersionCode number -
uni 编译器版本号。
uniRuntimeVersionCode number -
uni 运行时版本号。
romName string -
rom 名称。Android 部分机型获取不到值。iOS 恒为 ios
romVersion string -
rom 版本号。Android 部分机型获取不到值。iOS 为操作系统版本号(同 osVersion)。
windowWidth number -
可使用窗口宽度,单位为px
windowHeight number -
可使用窗口高度,单位为px
windowTop number -
内容区域距离顶部的距离(同CSS变量 --window-top),单位为px
windowBottom number -
内容区域距离底部的距离(同CSS变量 --window-bottom),单位为px
osAndroidAPILevel number -
Android 系统API库的版本。
appTheme string -
当前App的主题
合法值 兼容性 描述
light - -
dark - -
auto - -
albumAuthorized boolean -
需要基础库: 2.6.0

允许微信使用相册的开关(仅 iOS 有效)
benchmarkLevel number -
需要基础库: 1.8.0

设备性能等级(仅 Android)。取值为:x2 或 0(该设备无法运行小游戏),-1(性能未知),>=1(设备性能值,该值越高,设备性能越好)<br> 注意:性能等级当前仅反馈真机机型,暂不支持 IDE 模拟器机型
bluetoothEnabled boolean -
需要基础库: 2.6.0

蓝牙的系统开关
cameraAuthorized boolean -
需要基础库: 2.6.0

允许微信使用摄像头的开关
enableDebug boolean -
需要基础库: 2.15.0

是否已打开调试。可通过右上角菜单或 uni.setEnableDebug 打开调试。
fontSizeSetting number -
需要基础库: 1.5.0

用户字体大小(单位px)。以微信客户端「我x设置-通用-字体大小」中的设置为准
host GetSystemInfoResultHost -
需要基础库: 2.12.3

当前小程序运行的宿主环境
名称 类型 必备 默认值 兼容性 描述
appId string -
宿主 app 对应的 appId
locationAuthorized boolean -
需要基础库: 2.6.0

允许微信使用定位的开关
locationEnabled boolean -
需要基础库: 2.6.0

地理位置的系统开关
locationReducedAccuracy boolean -
true 表示模糊定位,false 表示精确定位,仅 iOS 支持
microphoneAuthorized boolean -
需要基础库: 2.6.0

允许微信使用麦克风的开关
notificationAlertAuthorized boolean -
需要基础库: 2.6.0

允许微信通知带有提醒的开关(仅 iOS 有效)
notificationAuthorized boolean -
需要基础库: 2.6.0

允许微信通知的开关
notificationBadgeAuthorized boolean -
需要基础库: 2.6.0

允许微信通知带有标记的开关(仅 iOS 有效)
notificationSoundAuthorized boolean -
需要基础库: 2.6.0

允许微信通知带有声音的开关(仅 iOS 有效)
phoneCalendarAuthorized boolean -
需要基础库: 2.19.3

允许微信使用日历的开关
wifiEnabled boolean -
需要基础库: 2.6.0

WixFi 的系统开关
theme string -
需要基础库: 2.11.0

系统当前主题,取值为lightdark,全局配置"darkmode":true时才能获取,否则为 undefined (不支持小游戏)

可选值:
x 'dark': 深色主题;
- 'light': 浅色主题;
合法值 兼容性 描述
dark - -
light - -
version string -
引擎版本号。 已废弃,仅为了向下兼容保留
uniCompileVersionCode number -
uni 编译器版本号。 已废弃,仅为了向下兼容保留
uniCompileVersion string -
uni 编译器版本。 已废弃,仅为了向下兼容保留
system string -
操作系统版本 已废弃,仅为了向下兼容保留
platform string -
客户端平台 已废弃,仅为了向下兼容保留
合法值 兼容性 描述
ios - -
android - -
harmonyos - -
mac - -
windows - -
linux - -
devtools
-
pixelRatio number -
设备像素比 已废弃,仅为了向下兼容保留
model string -
手机型号 已废弃,仅为了向下兼容保留
language string -
程序设置的语言 已废弃,仅为了向下兼容保留
brand string -
手机品牌。 已废弃,仅为了向下兼容保留

# 参见

# 通用类型

# GeneralCallbackResult

名称 类型 必备 默认值 兼容性 描述
errMsg string -
错误信息