<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
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
:開發者的應用相關的資訊,如應用名稱、版本非同步獲取系統資訊
OBJECT 引數說明:
引數名 | 型別 | 必填 | 說明 |
---|---|---|---|
success | Function | 是 | 介面呼叫成功的回撥 |
fail | Function | 否 | 介面呼叫失敗的回撥函數 |
complete | Function | 否 | 介面呼叫結束的回撥函數(呼叫成功、失敗都會執行) |
引數分類 | 引數 | 說明 | 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+) |
值 | 生效條件 |
---|---|
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
在某些情況的值會不一樣:
uniCompileVersion
會小於uniRuntimeVersion
uniRuntimeVersion
,wgt的新版使用了不同版本的HBuilder或uni-app cli版本,並且實施了應用資源升級值 | 解釋 |
---|---|
MIUI | 小米 |
EMUI | 華為 |
HarmonyOS | 華為鴻蒙 |
Magic OS | 榮耀 |
ColorOS | oppo |
Funtouch OS | vivo |
FLymeOS | 魅族 |
SmartisanOS | 錘子 |
注意:不同rom的版本號規則不同,比如MIUI
版本號是V130
,而HarmonyOS
的版本號是2.0.0
值 | 解釋 |
---|---|
微信 | |
wxwork | 微信企業版 |
百度宿主平臺列舉值列表(opens new window) | 百度 |
alipay | 支付寶 |
amap | 高德 |
DINGTALK | 釘釘 |
UC | UC瀏覽器 |
QUARK | 夸克瀏覽器 |
AK | 阿里健康 |
YK | 優酷 |
位元組宿主平臺列舉值列表(opens new window) | 位元組跳動系列 |
KUAISHOU | 快手 |
引數 | 型別 | 說明 |
---|---|---|
left | Number | 安全區域左上角橫座標 |
right | Number | 安全區域右下角橫座標 |
top | Number | 安全區域左上角縱座標 |
bottom | Number | 安全區域右下角縱座標 |
width | Number | 安全區域的寬度,單位邏輯畫素 |
height | Number | 安全區域的高度,單位邏輯畫素 |
safeAreaInsets 的結構
引數 | 型別 | 說明 |
---|---|---|
left | Number | 安全區域左側插入位置 |
right | Number | 安全區域右側插入位置 |
top | Number | 安全區頂部插入位置 |
bottom | Number | 安全區域底部插入位置 |
language的國際規範是BCP47規範
,分為三段,主語言-次語言-地區。例如zh-Hans-CN
,表示 中文-簡體-中國大陸
但除了主語言外,後兩者均可省略。在不同平臺,它們的省略規則也不相同。
zh-Hans-CN
zh-CN
zh-Hans
來表示簡體中文所以獲取語言後,不能直接字串比較,需要拆段比較,npm上也有專門做BCP47語言規範
比較的庫。
Web、小程式、iOS,屬於對使用者隱私保護比較嚴格的平臺,在這些平臺很難獲取有效的裝置唯一標記。
Android也已經改進使用者隱私保護。在極老的手機上可以無限制獲取imei,在次老的手機上,獲取imei等隱私資訊時需要彈框讓使用者授權。新的Android手機(Android10以上)已經徹底無法獲取imei了。
所以標記裝置,大多隻能依靠本地儲存一個亂數來標記。
deviceId,在app-android
平臺,會根據優先使用imei、mac(僅在使用者已授權的情況下,如果發現需要授權或未授權,則跳過此步驟),如果沒有獲取到就使用隨機生成的標識。其他平臺是直接使用隨機生成的標識。
當使用本地存貯的亂數時,發生以下情況將導致deviceId失效:
app下需要廣告追蹤的場景,在iOS上可以使用idfa (opens new window)、部分國產Android手機可以使用OAID(opens new window)
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
只有將應用主題設定為跟隨系統時才能獲取到系統的主題。小程式也有類似限制。本API在其他小程式的檔案連結:
呼叫程式碼範例
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 |
獲取系統資訊的同步介面。呼叫引數和返回值同上getSystemInfo
。
uni.getSystemInfo()
(1) deviceType 獲取裝置型別,phone、pad、pc
(2) deviceOrientation 獲取裝置方向,豎屏 portrait
、橫屏 landscape
(3) osName 獲取系統名稱,ios、android、windows、macos (APP只有ios、android)
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45