get-system-info.md 4.2 KB
Newer Older
D
DCloud_LXH 已提交
1 2
## uni.getSystemInfo(options) @getsysteminfo

DCloud-yyl's avatar
DCloud-yyl 已提交
3
> HBuilderX4.13-alpha版本,uniPlatform属性在 app 平台临时调整过,由 `app` 改为 `app-android`、`app-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
雪洛's avatar
雪洛 已提交
4

D
DCloud_LXH 已提交
5 6
<!-- UTSAPIJSON.getSystemInfo.description -->

D
DCloud_LXH 已提交
7 8
<!-- UTSAPIJSON.getSystemInfo.compatibility -->

D
DCloud_LXH 已提交
9 10 11 12 13 14
uni-app 提供了异步(`uni.getSystemInfo`)和同步(`uni.getSystemInfoSync`)的2个API获取系统信息。

按照运行环境层级排序,从底层向上,systemInfo有6个概念:
- `device`:运行应用的设备,如iphone、huawei
- `os`:设备的操作系统,如 ios、andriod、windows、mac、linux
- `rom`:基于操作系统的定制,Android系统特有概念,如miui、鸿蒙
DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
15
- `host`:运行应用的宿主程序,即OS和应用之间的运行环境,如浏览器、微信等小程序宿主、集成uniMPSDK的App
D
DCloud_LXH 已提交
16 17 18
- `uni`:uni-app框架相关的信息,如uni-app框架的编译器版本、运行时版本
- `app`:开发者的应用相关的信息,如应用名称、版本

W
wanganxp 已提交
19
因本API涉及的信息越来越多,查询速度会逐渐变慢。由此拆解分出3个新API,[uni.getDeviceInfo](get-device-info.md)[uni.getAppBaseInfo](get-app-base-info.md)[uni.getWindowInfo](get-window-info.md)。新API包含的信息更多。
D
DCloud_LXH 已提交
20

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

D
DCloud_LXH 已提交
23 24 25 26
<!-- UTSAPIJSON.getSystemInfo.param -->

<!-- UTSAPIJSON.getSystemInfo.returnValue -->

taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
27
::: warning 注意事项
DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
28 29
- appTheme如取值为`auto`,代表跟随系统。此时需查询osTheme获取当前到底是light还是dark。
- 获取OAID、AndroidID等其他设备信息,[见插件市场](https://ext.dcloud.net.cn/search?q=oaid&orderBy=Relevance&uni-appx=1)
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
30
- Android端的`windowHeight`属性是有时机的考量的,如果在全局作用域获取`windowHeight`,有可能当前Activity还未加载,所以导航栏和Tabbar的高度是不会计算进去的,稳妥起见,建议在`onReady`或者`onPageShow`内获取`windowheight`
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
31
- `windowHeight`属性是依赖于调用Api时栈顶Page的,比如延迟获取`windowHeight`,很可能页面已经切换了,这时候获取的高度是新的页面的。
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
32 33
- 4.25开始,Android端安全区域top调整为手机状态栏高度
:::
W
wanganxp 已提交
34

W
wanganxp 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
#### romName 返回值说明 @romname

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

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

#### hostName 返回值说明 @hostname

|值|解释|
|:-|:-|
|WeChat|微信|
|wxwork|微信企业版|
|[百度宿主平台枚举值列表](https://smartprogram.baidu.com/docs/develop/api/device_sys/hostlist/)|百度|
|alipay|支付宝|
|amap|高德|
|DINGTALK|钉钉|
|UC|UC浏览器|
|QUARK|夸克浏览器|
|AK|阿里健康|
|YK|优酷|
|[抖音宿主平台枚举值列表](https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/api/device/system-information/tt-get-system-info/#appname-%E8%AF%B4%E6%98%8E)|抖音系列|
|qq|QQ|
|KUAISHOU|快手|

D
DCloud_LXH 已提交
68 69 70 71 72 73 74 75
<!-- UTSAPIJSON.getSystemInfo.example -->

<!-- UTSAPIJSON.getSystemInfo.tutorial -->

## uni.getSystemInfoSync() @getsysteminfosync

<!-- UTSAPIJSON.getSystemInfoSync.description -->

W
wanganxp 已提交
76 77 78
本API是同步API,仅为上面异步API的同步形式,返回值内容没有区别。但由于本API涉及的查询内容较多,耗时长,一般情况下不推荐同步获取。\
如果希望使用同步方式,推荐使用分拆后的API:[uni.getDeviceInfo](./get-device-info.md)[uni.getWindowInfo](./get-window-info.md)[uni.getAppBaseInfo](./get-app-base-info.md)

D
DCloud_LXH 已提交
79 80
<!-- UTSAPIJSON.getSystemInfoSync.compatibility -->

D
DCloud_LXH 已提交
81 82 83 84 85 86 87 88 89 90
<!-- UTSAPIJSON.getSystemInfoSync.param -->

<!-- UTSAPIJSON.getSystemInfoSync.returnValue -->

<!-- UTSAPIJSON.getSystemInfoSync.example -->

<!-- UTSAPIJSON.getSystemInfoSync.tutorial -->

<!-- UTSAPIJSON.general_type.name -->

DCloud-yyl's avatar
DCloud-yyl 已提交
91
<!-- UTSAPIJSON.general_type.param -->