位置: IT常识 - 正文

uni.getSystemInfo(OBJECT)

编辑:rootadmin
uni.getSystemInfo(OBJECT) 系统信息的概念

推荐整理分享uni.getSystemInfo(OBJECT),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

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

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

异步获取系统信息

OBJECT 参数说明:

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

#success 返回参数说明

参数分类参数说明App平台值域Web平台值域小程序平台值域备注uni框架最低版本要求devicedeviceId设备 id 。由 uni-app 框架生成并存储,清空 Storage 会导致改变deviceType设备类型。如phone、pad、pc、unknow详见phone、pad、pc、unknowphone、pad、pcuni-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+ososName系统名称ios、androidios、android、windows、macos、linuxios、android、windows、macosuni-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+osAndroidAPILevelAndroid 系统API库的版本。详情参考Android 官方文档(opens new window)仅 Android 支持不支持不支持uni-app 3.4.10+romromNamerom 名称Android 部分机型获取不到值,详见。iOS 不支持不支持不支持uni-app 3.4.13+romVersionrom 版本Android 部分机型获取不到值,详见。iOS 不支持不支持不支持uni-app 3.4.13+browserbrowserName浏览器名称或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+hosthostName小程序宿主或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+hostSDKVersionuni小程序SDK版本、小程序客户端基础库版本仅 UniMPSDK 支持不支持uni-app 3.4.13+uni-app框架uniPlatformuni-app 运行平台,与条件编译平台相同。详见appweb或h5各家小程序,如mp-weixinuni-app 3.4.10+uniCompileVersionuni 编译器版本号。详见3.4.10、3.2.9 等3.4.10、3.2.9 等3.4.10、3.2.9 等uni-app 3.4.10+uniRuntimeVersionuni 运行时版本。详见3.4.10、3.2.9 等3.4.10、3.2.9 等3.4.10、3.2.9 等uni-app 3.4.10+appappIdmanifest 中应用appid,即DCloud appid。uni-app 3.4.10+appNamemanifest 中应用名称和字节跳动小程序字段冲突,字节跳动小程序原字段与hostName一致uni-app 3.4.10+appVersionmanifest 中应用版本名称。uni-app 3.4.10+appVersionCodemanifest 中应用版本名号。uni-app 3.4.10+appWgtVersion应用资源(wgt)的版本名称。uni-app 3.4.15+appLanguage应用设置的语言en、zh-Hans、zh-Hant、fr、esen、zh-Hans、zh-Hant、fr、esen、zh-Hans、zh-Hant、fr、esuni-app 3.4.13+其他uauserAgent标识不支持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地理位置的系统开关微信小程序wifiEnabledWi-Fi 的系统开关微信小程序cacheLocation上一次缓存的位置信息百度小程序(安卓端最低基础库版本 3.40.4 ;iOS 最低支持版本 3.70.2)storage设备磁盘容量支付宝小程序

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

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

#uniPlatform 返回值说明

值生效条件appAppwebWebmp-weixin微信小程序mp-alipay支付宝小程序mp-baidu百度小程序mp-toutiao字节跳动小程序mp-lark飞书小程序mp-qqQQ小程序mp-kuaishou快手小程序mp-jd京东小程序mp-360360小程序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会小于uniRuntimeVersionApp离线打包,使用了不匹配的离线SDKApp wgt升级,即手机上安装的App是老版的uniRuntimeVersion,wgt的新版使用了不同版本的HBuilder或uni-app cli版本,并且实施了应用资源升级

#romName 返回值说明

值解释MIUI小米EMUI华为HarmonyOS华为鸿蒙Magic OS荣耀ColorOSoppoFuntouch OSvivoFLymeOS魅族SmartisanOS锤子

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

#hostName 返回值说明

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

#safeArea 返回值说明

参数类型说明leftNumber安全区域左上角横坐标rightNumber安全区域右下角横坐标topNumber安全区域左上角纵坐标bottomNumber安全区域右下角纵坐标widthNumber安全区域的宽度,单位逻辑像素heightNumber安全区域的高度,单位逻辑像素

safeAreaInsets 的结构

参数类型说明leftNumber安全区域左侧插入位置rightNumber安全区域右侧插入位置topNumber安全区顶部插入位置bottomNumber安全区域底部插入位置

#language 返回值说明

uni.getSystemInfo(OBJECT)

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

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

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

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

#deviceId 返回值说明

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

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

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

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

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

卸载AppAndroid上重置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-AndroidApp-iOSh5Android uniMPsdkiOS uniMPsdkmp-weixinmp-alipaymp-baidump-toutiaoappId__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001appNametesttesttesttesttesttesttesttesttestappVersion1.0.01.0.01.0.01.0.01.0.01.0.01.0.01.0.01.0.0appVersionCode100100100100100100100100100appLanguagezh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-HansbrowserNamechromewkwebviewsafarichromewkwebview----browserVersion96.0.4664.10413.4.1313.0.388.0.4324.9315.4----deviceIdd3db0944da20f333F791564F-853B-47B6-8CB8-27FF5931505916518284854447835016c7eafa7ed8774c0dF791564F-853B-47B6-8CB8-27FF59315059165217828572038477316536215804846585135165335963981121358216538995501084056633deviceBrandxiaomiapple-huaweiappleiphoneiphoneiphoneappledeviceModelMi10ProiPhone13ProMaxiPhoneMXW-AN00iPhoneSimulatoriPhone6/7/8PlusiPhone14,3iPhone6/7/8iPhone6deviceTypephonephonephonephonephonephonephonephonephonedeviceOrientationportraitportraitportraitportraitportraitportrait-portrait-devicePixelRatio2.568750143051147532333322hostName--safariMPLauncherV3uniMPDemoWeChat、wxworkalipay、amap、DINGTALK、UC、QUARK、AK、YKbaiduboxapp 等百度宿主平台枚举值列表(opens new window)Douyin、Toutiao、news_article_lite、live_stream、XiGua、PPXhostVersion--13.0.31.01.0.08.0.510.2.232.45.06.6.3hostLanguage--zh-CNzh-CNzh-Hans-CNzh-CNzh-CNzh-CNhostTheme---lightlight----hostPackageName---com.example.mplauncherv3io.dcloud.hellounimp----hostSDKVersion---3.4.133.4.132.24.22.7.63.450.162.49.0osNameandroidiosiosandroidiosiosiosiosiososVersion1215.513.2.31015.410.0.115.515.510.0.1osLanguagezh-CNzh-Hans-CN-zh-CNzh-Hans-CN----osThemelightlight-lightlight----osAndroidAPILevel31--29-----romNameMIUI--HarmonyOS-----romVersionV130--2.0.0-----uniPlatformappappwebappappmp-weixinmp-alipaymp-baidump-toutiaouniCompileVersion3.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.13uniRuntimeVersion3.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.13#uni.getSystemInfoSync()

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

本文链接地址:https://www.jiuchutong.com/zhishi/299293.html 转载请保留说明!

上一篇:Vue--》详解Vue组件生命周期的三个阶段(vue组件入门)

下一篇:Vue3路由守卫(vue3路由守卫 微信授权登陆)

  • 增值税发票丢失可以用复印件入账么
  • 税控服务费减免税款分录
  • 会计核算体系的重要性
  • 税务变更需要哪些材料
  • 资产负债表中无形资产是原值还是净值
  • 营改增后建筑业
  • 合伙企业无偿获得股权怎么缴税?
  • 独资合伙企业的所有者用于承担企业财务风险的财产是
  • 股票发行的会计分录
  • 小规模纳税人开了3%的专票还能享受1%
  • 增值税哪些可以全额抵扣
  • 技术服务费属于无形资产吗
  • 2021虚开发票案例
  • 建筑行业增值税税率是多少
  • 增值税发票的开具问题
  • 建筑企业在境外施工税收一共包括几个部分
  • 年终奖扣税和工资扣税
  • 增值税减免了,附加税申报表还用填吗
  • 费用报销单的摘要是什么意思
  • 最新定额是哪年
  • 没有生产产品,费用怎么结转
  • 库存股是实收资本吗
  • 个人购买余额宝安全吗?
  • 预提费用和应付利息一样吗
  • 设计服务交文化建设税吗
  • Realtek高清晰音频管理器设置方法
  • vue项目如何搭建
  • 多提的费用如何做冲减分录
  • 广告传媒公司的成本是什么
  • 华为手机网络拒绝接入怎么解决
  • 股东分红的会计科目怎么做
  • 索尼vpcea200c笔记本
  • 生产成本结转库存商品的数量
  • php 数字相加
  • 小米路由器开启ssh后怎么安装插件
  • u盘显示0字节修改不了
  • 电脑故障检测与维护方法
  • avgserv9.exe是什么进程 avgserv9进程的详细介绍
  • 土增税税
  • 预支员工报销费用会计科目
  • 云计算技术是学什么的
  • php 提交表单
  • php面向对象优点,缺点
  • 划水划水划水表情包
  • 投资收益主要来源于
  • 收不回的应收账款分录
  • 其他应收款包括应收利息吗
  • 如何更改电子税务局办税人员
  • 怎么样确认
  • 支付版权使用费怎么记账
  • 帝国cms怎么样
  • 不含税开发票吗
  • 零申报一定要有员工吗
  • 出口退税中的免税是什么
  • 企业所得税是指利润的税吗
  • MySQL入门教程
  • 委托加工物资的消费税
  • 专门借款本金汇兑差额
  • 小规模纳税人免税政策
  • 大额装修费按几年摊销
  • 公司注销后原有未使用的包装还可以用吗怎么办
  • 个人往对公账户上存款怎么存
  • 会计损益类科目有哪些,期末如何结转?
  • 母子公司资金往来财税问题
  • 进口关税怎么算增值税
  • 商业企业会计分录大全
  • mysql的三种查询方式
  • win8的开机启动项在哪里
  • win7旗舰版虚拟光驱下载
  • linux dns1
  • linux系统的配置
  • select类中下拉框选择常见的方法
  • js测试工具
  • android 控件居中
  • python做脚本语言怎么用
  • python中redis的用法
  • python 面向对象 类
  • Android 使用nodejs
  • 我的电脑软件下载
  • 农村信用社升级为什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设