首页IT科技unigine引擎(uni.getSystemInfo(OBJECT))

unigine引擎(uni.getSystemInfo(OBJECT))

时间2025-05-02 08:23:11分类IT科技浏览4336
导读:系统信息的概念 uni-app提供了异步(uni.getSystemInfo 和同步(uni.getSystemInfoSync 的2个API获取系统信息。...

系统信息的概念

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

系统信息返回的内容非常多            ,各操作系统            、各家小程序                  、各浏览器对它们的定义也不相同                  。uni-app里重新梳理了这些概念                  ,同时为了向下兼容也保留了这些平台原来的概念      ,但不推荐使用      。

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

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

uni.getSystemInfo(OBJECT)

异步获取系统信息

OBJECT 参数说明:

参数名 类型 必填 说明 success Function 是 接口调用成功的回调 fail Function 否 接口调用失败的回调函数 complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)

#success 返回参数说明

参数分类 参数 说明 App平台值域 Web平台值域 小程序平台值域 备注 uni框架最低版本要求 device deviceId 设备 id                   。由 uni-app 框架生成并存储               ,清空 Storage 会导致改变 deviceType 设备类型         。如phone               、pad                  、pc   、unknow 详见 phone            、pad                  、pc      、unknow phone         、pad                  、pc uni-app 3.4.10+ deviceBrand 设备品牌      。如:apple         、huawei 不支持 uni-app 3.4.10+ deviceModel 设备型号 部分设备无法获取 uni-app 3.4.10+ deviceOrientation 设备方向 竖屏 portrait      、横屏 landscape 竖屏 portrait                  、横屏 landscape 竖屏 portrait            、横屏 landscape                  。仅微信百度小程序支持 uni-app 3.4.13+ devicePixelRatio 设备像素比 uni-app 3.4.13+ os osName 系统名称 ios   、android ios                  、android               、windows、macos               、linux ios                  、android   、windows            、macos uni-app 3.4.10+ osVersion 操作系统版本            。如 ios 版本                  ,andriod 版本 uni-app 3.4.10+ osLanguage 操作系统语言详见 Android仅支持主语言+地区:zh-CN 中文简体                  、iOS支持主语言+次语言+地区zh-Hans-CN 中文简体 与浏览器语言一致 不支持 uni-app 3.4.10+ osTheme 操作系统主题 light      、dark   。iOS平台只有将应用主题设置为跟随系统时才能获取到系统的主题 不支持 不支持 uni-app 3.4.10+ osAndroidAPILevel Android 系统API库的版本                  。详情参考Android 官方文档(opens new window) 仅 Android 支持 不支持 不支持 uni-app 3.4.10+ rom romName rom 名称 Android 部分机型获取不到值   ,详见               。iOS 不支持 不支持 不支持 uni-app 3.4.13+ romVersion rom 版本 Android 部分机型获取不到值            ,详见。iOS 不支持 不支持 不支持 uni-app 3.4.13+ browser browserName 浏览器名称或App的webview名称 chrome(android)         、wkwebview(ios)                  、x5webview(app打包x5引擎) chrome         、edge      、safari                  、firefox 不支持 uni-app 3.4.10+ browserVersion 浏览器版本            、webview 版本 不支持 uni-app 3.4.10+ host hostName 小程序宿主或uniMPSDK的集成宿主名称                  ,如:WeChat   、FeiShu 仅 UniMPSDK 支持 不支持 详见 微信小程序真机运行才有真值 uni-app 3.4.10+ hostVersion 宿主版本               。如:微信版本号 仅 UniMPSDK 支持 不支持 小程序宿主版本 uni-app 3.4.10+ hostLanguage 宿主语言 仅 UniMPSDK 支持 不支持 小程序宿主语言 uni-app 3.4.10+ hostTheme 宿主主题 light                  、dark                  。仅 UniMPSDK 支持 不支持 light               、dark   。前提是微信小程序全局配置"darkmode":true时才能获取 uni-app 3.4.10+ hostFontSizeSetting 用户字体大小设置            。以“我-设置-通用-字体大小            ”中的设置为准      ,单位:px 不支持 不支持 微信小程序、支付宝小程序               、百度小程序                  、QQ小程序   、字节小程序(2.53.0+) uni-app 3.4.13+ hostPackageName 小程序宿主包名 仅 UniMPSDK 支持 不支持 不支持 uni-app 3.4.10+ hostSDKVersion uni小程序SDK版本            、小程序客户端基础库版本 仅 UniMPSDK 支持 不支持 uni-app 3.4.13+ uni-app框架 uniPlatform uni-app 运行平台         ,与条件编译平台相同                  。详见 app web或h5 各家小程序                  ,如mp-weixin uni-app 3.4.10+ uniCompileVersion uni 编译器版本号      。详见 3.4.10                  、3.2.9 等 3.4.10      、3.2.9 等 3.4.10         、3.2.9 等 uni-app 3.4.10+ uniRuntimeVersion uni 运行时版本         。详见 3.4.10                  、3.2.9 等 3.4.10         、3.2.9 等 3.4.10      、3.2.9 等 uni-app 3.4.10+ app appId manifest 中应用appid         ,即DCloud appid                  。 uni-app 3.4.10+ appName manifest 中应用名称 和字节跳动小程序字段冲突      ,字节跳动小程序原字段与hostName一致 uni-app 3.4.10+ appVersion manifest 中应用版本名称         。 uni-app 3.4.10+ appVersionCode manifest 中应用版本名号      。 uni-app 3.4.10+ appWgtVersion 应用资源(wgt)的版本名称                  。 uni-app 3.4.15+ appLanguage 应用设置的语言 en                  、zh-Hans            、zh-Hant   、fr                  、es en               、zh-Hans、zh-Hant               、fr                  、es en   、zh-Hans            、zh-Hant                  、fr      、es uni-app 3.4.13+ 其他 ua userAgent标识 不支持 uni-app 3.4.10+ screenWidth 屏幕宽度 screenHeight 屏幕高度 windowWidth 可使用窗口宽度 windowHeight 可使用窗口高度 windowTop 可使用窗口的顶部位置 windowBottom 可使用窗口的底部位置 statusBarHeight 手机状态栏的高度 safeArea 在竖屏正方向下的安全区域            。由于此属性理解和使用比较困难                  ,更推荐使用 safeAreaInsets 属性   。详见 微信         、百度(开发者工具暂不支持            ,真机有效)                  、字节跳动         、飞书      、快手小程序                  、华为快应用 safeAreaInsets 在竖屏正方向下的安全区域插入位置                  。与小程序定义的 safeArea 用途相同   ,但是规范参考 iOS 平台的 safeAreaInsets (opens new window)更利于理解和使用               。详见 微信            、百度(开发者工具暂不支持                  ,真机有效)   、字节跳动                  、飞书               、快手小程序、华为快应用 uni-app 2.5.3+

#某些小程序特殊的返回参数

参数 说明 平台差异说明 benchmarkLevel 设备性能等级。取值为:-2 或 0(该设备无法运行小游戏)               ,-1(性能未知),>=1(设备性能值               ,该值越高                  ,设备性能越好   ,目前最高不到50) 微信小程序Android版               、QQ小程序Android版 batteryLevel 剩余电量百分比(仅 iOS 有效) 微信小程序 currentBattery 当前电量百分比 支付宝小程序 navigationBarHeight 导航栏的高度 百度小程序 titleBarHeight 标题栏高度 支付宝小程序 albumAuthorized 允许微信使用相册的开关(仅 iOS 有效) 微信小程序 cameraAuthorized 允许微信使用摄像头的开关 微信小程序 locationAuthorized 允许微信使用定位的开关 微信小程序 microphoneAuthorized 允许微信使用麦克风的开关 微信小程序 notificationAuthorized 允许微信通知的开关 微信小程序 notificationAlertAuthorized 允许微信通知带有提醒的开关(仅 iOS 有效) 微信小程序 notificationBadgeAuthorized 允许微信通知带有标记的开关(仅 iOS 有效) 微信小程序 notificationSoundAuthorized 允许微信通知带有声音的开关(仅 iOS 有效) 微信小程序 bluetoothEnabled 蓝牙的系统开关 微信小程序 locationEnabled 地理位置的系统开关 微信小程序 wifiEnabled Wi-Fi 的系统开关 微信小程序 cacheLocation 上一次缓存的位置信息 百度小程序(安卓端最低基础库版本 3.40.4 ;iOS 最低支持版本 3.70.2) storage 设备磁盘容量 支付宝小程序

#不推荐使用的返回参数            ,仅为向下兼容保留

参数 说明 平台差异说明 pixelRatio 设备像素比 brand 设备品牌               。uni-app 3.4.10+ 后该字段为全小写                  ,可能要做兼容处理 App                  、微信小程序   、百度小程序            、字节跳动小程序                  、飞书小程序      、QQ小程序 model 设备型号 全平台支持                  。Web 端部分设备无法获取具体型号 system 操作系统名称及版本      ,如Android 10 language 应用设置的语言 version 引擎版本号 Web不支持 platform 客户端平台         ,值域为:ios         、android                  、mac(3.1.10+)         、windows(3.1.10+)      、linux(3.1.10+) host 宿主平台 百度小程序 SDKVersion 客户端基础库版本 支付宝小程序和Web不支持 swanNativeVersion 宿主平台版本号 百度小程序 app 当前运行的客户端 支付宝小程序 AppPlatform App平台 QQ小程序 fontSizeSetting 用户字体大小设置   。以“我-设置-通用-字体大小                  ”中的设置为准                  ,单位:px 微信小程序                  、支付宝小程序            、百度小程序   、QQ小程序                  、字节小程序(2.53.0+)

#uniPlatform 返回值说明

值 生效条件 app App web Web mp-weixin 微信小程序 mp-alipay 支付宝小程序 mp-baidu 百度小程序 mp-toutiao 字节跳动小程序 mp-lark 飞书小程序 mp-qq QQ小程序 mp-kuaishou 快手小程序 mp-jd 京东小程序 mp-360 360小程序 quickapp-webview 快应用通用(包含联盟               、华为) quickapp-webview-union 快应用联盟 quickapp-webview-huawei 快应用华为

uniCompileVersion编译器版本 和 uniRuntimeVersion运行时版本         ,正常情况应该是一样的值      ,即uni-app的版本            。

如果使用HBuilder自带的uni-app开发                  ,该值即等同于HBuilder的版本;如果使用单独的uni-app cli开发            ,则等同于cli版本                  。

但在App平台   ,uniCompileVersion 和 uniRuntimeVersion 在某些情况的值会不一样:

App云打包选择了不匹配的打包机版本                  ,比如HBuilder版本较老               ,云端已经没有对应打包机,此时打包后uniCompileVersion会小于uniRuntimeVersion App离线打包               ,使用了不匹配的离线SDK App wgt升级                  ,即手机上安装的App是老版的uniRuntimeVersion   ,wgt的新版使用了不同版本的HBuilder或uni-app cli版本            ,并且实施了应用资源升级

#romName 返回值说明

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

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

#hostName 返回值说明

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

#safeArea 返回值说明

参数 类型 说明 left Number 安全区域左上角横坐标 right Number 安全区域右下角横坐标 top Number 安全区域左上角纵坐标 bottom Number 安全区域右下角纵坐标 width Number 安全区域的宽度         ,单位逻辑像素 height Number 安全区域的高度                  ,单位逻辑像素

safeAreaInsets 的结构

参数 类型 说明 left Number 安全区域左侧插入位置 right Number 安全区域右侧插入位置 top Number 安全区顶部插入位置 bottom Number 安全区域底部插入位置

#language 返回值说明

language的国际规范是BCP47规范         ,分为三段      ,主语言-次语言-地区      。例如zh-Hans-CN                  ,表示 中文-简体-中国大陆

但除了主语言外            ,后两者均可省略         。在不同平台   ,它们的省略规则也不相同                  。

app-ios                  ,不省略               ,返回zh-Hans-CN app-android、web               、微信小程序,省略次语言               ,返回zh-CN uni-app框架和应用的多语言                  ,以及支付宝小程序   ,则用zh-Hans来表示简体中文

所以获取语言后            ,不能直接字符串比较                  ,需要拆段比较      ,npm上也有专门做BCP47语言规范比较的库         。

#deviceId 返回值说明

Web                  、小程序   、iOS         ,属于对用户隐私保护比较严格的平台                  ,在这些平台很难获取有效的设备唯一标记      。

Android也已经改进用户隐私保护                  。在极老的手机上可以无限制获取imei         ,在次老的手机上      ,获取imei等隐私信息时需要弹框让用户授权            。新的Android手机(Android10以上)已经彻底无法获取imei了   。

所以标记设备                  ,大多只能依靠本地存储一个随机数来标记                  。

deviceId            ,在app-android平台   ,会根据优先使用imei            、mac(仅在用户已授权的情况下                  ,如果发现需要授权或未授权               ,则跳过此步骤),如果没有获取到就使用随机生成的标识               。其他平台是直接使用随机生成的标识。

当使用本地存贮的随机数时               ,发生以下情况将导致deviceId失效:

卸载App Android上重置App数据 浏览器清空缓存或开启隐私模式                  ,

app下需要广告追踪的场景   ,在iOS上可以使用idfa (opens new window)                  、部分国产Android手机可以使用OAID(opens new window)

#deviceModel 返回值说明

uni-app 3.5.1+ 版本规范了 deviceModel 返回值            ,例如之前返回 iPhone11ProMax 新版本返回值为 iPhone 11 Pro Max                  ,各设备型号参考规范 (opens new window)中 Generation 对应的值

注意:新机型刚推出一段时间会显示 Unknown      ,官方会尽快进行适配               。

#其他注意

deviceType:

app-ios 只支持 phone      、pad                  。

app-android 支持 phone         、pad                  、tv         、car      、watch                  、vr            、appliance   、undefined                  、unknown         ,关于各个类型的更详细解释参考Android官方文档 (opens new window)   。

其中                  ,app-android 平台下 pad 类型的判断         ,在国产pad等非google官方设备上并不一定准确            。如果有需要开发者可自行根据型号或屏幕大小判断                  。uni-app框架源码中判断pad的java代码如下      ,供参考:

public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; }

复制代码

osTheme:app-ios 只有将应用主题设置为跟随系统时才能获取到系统的主题      。小程序也有类似限制         。 屏幕高度 = 原生NavigationBar高度(含状态栏高度)+ 可使用窗口高度 + 原生TabBar高度 windowHeight不包含NavigationBar和TabBar的高度 Web端                  ,windowTop等于NavigationBar高度            ,windowBottom等于TabBar高度 App端   ,windowTop等于透明状态NavigationBar高度                  ,windowBottom等于透明状态TabBar高度 高度相关信息               ,要放在 onReady 里获取                  。太早取不到         。

调用代码示例

uni.getSystemInfo({ success: function (res) { console.log(res.appName) } });

在不同平台 getSystemInfo 的返回值(表格较长,可缩放页面后拖动横向滚动条)

标明 - 的都为 undefined               ,其他值都与所列出项相同

字段名称 App-Android App-iOS h5 Android uniMPsdk iOS uniMPsdk mp-weixin mp-alipay mp-baidu mp-toutiao appId __UNI__8BB4001 __UNI__8BB4001 __UNI__8BB4001 __UNI__8BB4001 __UNI__8BB4001 __UNI__8BB4001 __UNI__8BB4001 __UNI__8BB4001 __UNI__8BB4001 appName test test test test test test test test test appVersion 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 appVersionCode 100 100 100 100 100 100 100 100 100 appLanguage zh-Hans zh-Hans zh-Hans zh-Hans zh-Hans zh-Hans zh-Hans zh-Hans zh-Hans browserName chrome wkwebview safari chrome wkwebview - - - - browserVersion 96.0.4664.104 13.4.13 13.0.3 88.0.4324.93 15.4 - - - - deviceId d3db0944da20f333 F791564F-853B-47B6-8CB8-27FF59315059 16518284854447835016 c7eafa7ed8774c0d F791564F-853B-47B6-8CB8-27FF59315059 1652178285720384773 16536215804846585135 1653359639811213582 16538995501084056633 deviceBrand xiaomi apple - huawei apple iphone iphone iphone apple deviceModel Mi10Pro iPhone13ProMax iPhone MXW-AN00 iPhoneSimulator iPhone6/7/8Plus iPhone14,3 iPhone6/7/8 iPhone6 deviceType phone phone phone phone phone phone phone phone phone deviceOrientation portrait portrait portrait portrait portrait portrait - portrait - devicePixelRatio 2.5687501430511475 3 2 3 3 3 3 2 2 hostName - - safari MPLauncherV3 uniMPDemo WeChat               、wxwork alipay、amap               、DINGTALK                  、UC   、QUARK            、AK                  、YK baiduboxapp 等百度宿主平台枚举值列表(opens new window) Douyin      、Toutiao         、news_article_lite                  、live_stream         、XiGua      、PPX hostVersion - - 13.0.3 1.0 1.0.0 8.0.5 10.2.23 2.45.0 6.6.3 hostLanguage - - zh-CN zh-CN zh-Hans-CN zh-CN zh-CN zh-CN hostTheme - - - light light - - - - hostPackageName - - - com.example.mplauncherv3 io.dcloud.hellounimp - - - - hostSDKVersion - - - 3.4.13 3.4.13 2.24.2 2.7.6 3.450.16 2.49.0 osName android ios ios android ios ios ios ios ios osVersion 12 15.5 13.2.3 10 15.4 10.0.1 15.5 15.5 10.0.1 osLanguage zh-CN zh-Hans-CN - zh-CN zh-Hans-CN - - - - osTheme light light - light light - - - - osAndroidAPILevel 31 - - 29 - - - - - romName MIUI - - HarmonyOS - - - - - romVersion V130 - - 2.0.0 - - - - - uniPlatform app app web app app mp-weixin mp-alipay mp-baidu mp-toutiao uniCompileVersion 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 uniRuntimeVersion 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13 3.4.13

#uni.getSystemInfoSync()

获取系统信息的同步接口      。调用参数和返回值同上getSystemInfo                  。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
h5 canvas 画图(学习Canvas基础-绘制矩形) 恒星播放器有病毒吗(分享3种轻松清除PC版恒星播放器播放痕迹的方法)