亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

uniapp?獲取系統(tǒng)信息的方法小結(jié)

 更新時間:2022年11月12日 23:03:39   作者:moranjl  
uni-app提供了異步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2個API獲取系統(tǒng)信息,系統(tǒng)信息返回的內(nèi)容非常多,各操作系統(tǒng)、各家小程序、各瀏覽器對它們的定義也不相同

uni-app提供了異步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2個API獲取系統(tǒng)信息。

系統(tǒng)信息返回的內(nèi)容非常多,各操作系統(tǒng)、各家小程序、各瀏覽器對它們的定義也不相同。uni-app里重新梳理了這些概念,同時為了向下兼容也保留了這些平臺原來的概念,但不推薦使用。

按照運行環(huán)境層級排序,從底層向上,uni-app有6個概念:

  • device:運行應(yīng)用的設(shè)備,如iphone、huawei
  • os:設(shè)備的操作系統(tǒng),如 ios、andriod、windows、mac、linux
  • rom:基于操作系統(tǒng)的定制,Android系統(tǒng)特有概念,如miui、鴻蒙
  • host:運行應(yīng)用的宿主程序,即OS和應(yīng)用之間的運行環(huán)境,如瀏覽器、微信等小程序宿主、集成uniMPSDK的App。uni-app直接開發(fā)的app沒有host概念
  • uni:uni-app框架相關(guān)的信息,如uni-app框架的編譯器版本、運行時版本
  • app:開發(fā)者的應(yīng)用相關(guān)的信息,如應(yīng)用名稱、版本

一、uni.getSystemInfo(OBJECT)

異步獲取系統(tǒng)信息

OBJECT 參數(shù)說明:

參數(shù)名類型必填說明
successFunction接口調(diào)用成功的回調(diào)
failFunction接口調(diào)用失敗的回調(diào)函數(shù)
completeFunction接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

#success 返回參數(shù)說明

參數(shù)分類參數(shù)說明App平臺值域Web平臺值域小程序平臺值域備注uni框架最低版本要求
devicedeviceId設(shè)備 id 。由 uni-app 框架生成并存儲,清空 Storage 會導致改變     
 deviceType設(shè)備類型。如phone、pad、pc、unknow詳見phone、pad、pc、unknowphonepad、pc uni-app 3.4.10+
 deviceBrand設(shè)備品牌。如:apple、huawei 不支持  uni-app 3.4.10+
 deviceModel設(shè)備型號 部分設(shè)備無法獲取  uni-app 3.4.10+
 deviceOrientation設(shè)備方向豎屏 portrait橫屏 landscape豎屏 portrait、橫屏 landscape豎屏 portrait橫屏 landscape。僅微信百度小程序支持 uni-app 3.4.13+
 devicePixelRatio設(shè)備像素比    uni-app 3.4.13+
ososName系統(tǒng)名稱ios、androidios、android、windows、macos、linuxios、android、windows、macos uni-app 3.4.10+
 osVersion操作系統(tǒng)版本。如 ios 版本,andriod 版本    uni-app 3.4.10+
 osLanguage操作系統(tǒng)語言詳見Android僅支持主語言+地區(qū):zh-CN 中文簡體、iOS支持主語言+次語言+地區(qū)zh-Hans-CN 中文簡體與瀏覽器語言一致不支持 uni-app 3.4.10+
 osTheme操作系統(tǒng)主題light、dark。iOS平臺只有將應(yīng)用主題設(shè)置為跟隨系統(tǒng)時才能獲取到系統(tǒng)的主題不支持不支持 uni-app 3.4.10+
 osAndroidAPILevelAndroid 系統(tǒng)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 支持不支持lightdark。前提是微信小程序全局配置"darkmode":true時才能獲取 uni-app 3.4.10+
 hostFontSizeSetting用戶字體大小設(shè)置。以“我-設(shè)置-通用-字體大小”中的設(shè)置為準,單位:px不支持不支持微信小程序、支付寶小程序、百度小程序、QQ小程序、字節(jié)小程序(2.53.0+) uni-app 3.4.13+
 hostPackageName小程序宿主包名僅 UniMPSDK 支持不支持不支持 uni-app 3.4.10+
 hostSDKVersionuni小程序SDK版本、小程序客戶端基礎(chǔ)庫版本僅 UniMPSDK 支持不支持  uni-app 3.4.13+
uni-app框架uniPlatformuni-app 運行平臺,與條件編譯平臺相同。詳見appwebh5各家小程序,如mp-weixin uni-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.103.2.9 等3.4.10、3.2.9 等 uni-app 3.4.10+
appappIdmanifest 中應(yīng)用appid,即DCloud appid。    uni-app 3.4.10+
 appNamemanifest 中應(yīng)用名稱   字節(jié)跳動小程序字段沖突,字節(jié)跳動小程序原字段與hostName一致uni-app 3.4.10+
 appVersionmanifest 中應(yīng)用版本名稱。    uni-app 3.4.10+
 appVersionCodemanifest 中應(yīng)用版本名號。    uni-app 3.4.10+
 appWgtVersion應(yīng)用資源(wgt)的版本名稱。    uni-app 3.4.15+
 appLanguage應(yīng)用設(shè)置的語言enzh-Hans、zh-Hant、fr、esen、zh-Hans、zh-Hantfr、esenzh-Hans、zh-Hant、fr、es uni-app 3.4.13+
其他uauserAgent標識  不支持 uni-app 3.4.10+
 screenWidth屏幕寬度     
 screenHeight屏幕高度     
 windowWidth可使用窗口寬度     
 windowHeight可使用窗口高度     
 windowTop可使用窗口的頂部位置     
 windowBottom可使用窗口的底部位置     
 statusBarHeight手機狀態(tài)欄的高度     
 safeArea在豎屏正方向下的安全區(qū)域。由于此屬性理解和使用比較困難,更推薦使用 safeAreaInsets 屬性。詳見  微信、百度(開發(fā)者工具暫不支持,真機有效)、字節(jié)跳動、飛書、快手小程序、華為快應(yīng)用  
 safeAreaInsets在豎屏正方向下的安全區(qū)域插入位置。與小程序定義的 safeArea 用途相同,但是規(guī)范參考 iOS 平臺的 safeAreaInsets (opens new window)更利于理解和使用。詳見  微信、百度(開發(fā)者工具暫不支持,真機有效)、字節(jié)跳動、飛書、快手小程序、華為快應(yīng)用 uni-app 2.5.3+

#某些小程序特殊的返回參數(shù)

參數(shù)說明平臺差異說明
benchmarkLevel設(shè)備性能等級。取值為:-2 或 0(該設(shè)備無法運行小游戲),-1(性能未知),>=1(設(shè)備性能值,該值越高,設(shè)備性能越好,目前最高不到50)微信小程序Android版、QQ小程序Android版
batteryLevel剩余電量百分比(僅 iOS 有效)微信小程序
currentBattery當前電量百分比支付寶小程序
navigationBarHeight導航欄的高度百度小程序
titleBarHeight標題欄高度支付寶小程序
albumAuthorized允許微信使用相冊的開關(guān)(僅 iOS 有效)微信小程序
cameraAuthorized允許微信使用攝像頭的開關(guān)微信小程序
locationAuthorized允許微信使用定位的開關(guān)微信小程序
microphoneAuthorized允許微信使用麥克風的開關(guān)微信小程序
notificationAuthorized允許微信通知的開關(guān)微信小程序
notificationAlertAuthorized允許微信通知帶有提醒的開關(guān)(僅 iOS 有效)微信小程序
notificationBadgeAuthorized允許微信通知帶有標記的開關(guān)(僅 iOS 有效)微信小程序
notificationSoundAuthorized允許微信通知帶有聲音的開關(guān)(僅 iOS 有效)微信小程序
bluetoothEnabled藍牙的系統(tǒng)開關(guān)微信小程序
locationEnabled地理位置的系統(tǒng)開關(guān)微信小程序
wifiEnabledWi-Fi 的系統(tǒng)開關(guān)微信小程序
cacheLocation上一次緩存的位置信息百度小程序(安卓端最低基礎(chǔ)庫版本 3.40.4 ;iOS 最低支持版本 3.70.2)
storage設(shè)備磁盤容量支付寶小程序

#不推薦使用的返回參數(shù),僅為向下兼容保留

參數(shù)說明平臺差異說明
pixelRatio設(shè)備像素比 
brand設(shè)備品牌。uni-app 3.4.10+ 后該字段為全小寫,可能要做兼容處理App、微信小程序、百度小程序、字節(jié)跳動小程序、飛書小程序、QQ小程序
model設(shè)備型號全平臺支持。Web 端部分設(shè)備無法獲取具體型號
system操作系統(tǒng)名稱及版本,如Android 10 
language應(yīng)用設(shè)置的語言 
version引擎版本號Web不支持
platform客戶端平臺,值域為:ios、androidmac(3.1.10+)、windows(3.1.10+)、linux(3.1.10+) 
host宿主平臺百度小程序
SDKVersion客戶端基礎(chǔ)庫版本支付寶小程序和Web不支持
swanNativeVersion宿主平臺版本號百度小程序
app當前運行的客戶端支付寶小程序
AppPlatformApp平臺QQ小程序
fontSizeSetting用戶字體大小設(shè)置。以“我-設(shè)置-通用-字體大小”中的設(shè)置為準,單位:px微信小程序、支付寶小程序、百度小程序、QQ小程序、字節(jié)小程序(2.53.0+)

#uniPlatform 返回值說明

生效條件
appApp
webWeb
mp-weixin微信小程序
mp-alipay支付寶小程序
mp-baidu百度小程序
mp-toutiao字節(jié)跳動小程序
mp-lark飛書小程序
mp-qqQQ小程序
mp-kuaishou快手小程序
mp-jd京東小程序
mp-360360小程序
quickapp-webview快應(yīng)用通用(包含聯(lián)盟、華為)
quickapp-webview-union快應(yīng)用聯(lián)盟
quickapp-webview-huawei快應(yīng)用華為

uniCompileVersion編譯器版本 和 uniRuntimeVersion運行時版本,正常情況應(yīng)該是一樣的值,即uni-app的版本。

如果使用HBuilder自帶的uni-app開發(fā),該值即等同于HBuilder的版本;如果使用單獨的uni-app cli開發(fā),則等同于cli版本。

但在App平臺,uniCompileVersion 和 uniRuntimeVersion 在某些情況的值會不一樣:

  • App云打包選擇了不匹配的打包機版本,比如HBuilder版本較老,云端已經(jīng)沒有對應(yīng)打包機,此時打包后uniCompileVersion會小于uniRuntimeVersion
  • App離線打包,使用了不匹配的離線SDK
  • App wgt升級,即手機上安裝的App是老版的uniRuntimeVersion,wgt的新版使用了不同版本的HBuilder或uni-app cli版本,并且實施了應(yīng)用資源升級

#romName 返回值說明

解釋
MIUI小米
EMUI華為
HarmonyOS華為鴻蒙
Magic OS榮耀
ColorOSoppo
Funtouch OSvivo
FLymeOS魅族
SmartisanOS錘子

注意:不同rom的版本號規(guī)則不同,比如MIUI版本號是V130,而HarmonyOS的版本號是2.0.0

#hostName 返回值說明

解釋
WeChat微信
wxwork微信企業(yè)版
百度宿主平臺枚舉值列表(opens new window)百度
alipay支付寶
amap高德
DINGTALK釘釘
UCUC瀏覽器
QUARK夸克瀏覽器
AK阿里健康
YK優(yōu)酷
字節(jié)宿主平臺枚舉值列表(opens new window)字節(jié)跳動系列
qqQQ
KUAISHOU快手

#safeArea 返回值說明

參數(shù)類型說明
leftNumber安全區(qū)域左上角橫坐標
rightNumber安全區(qū)域右下角橫坐標
topNumber安全區(qū)域左上角縱坐標
bottomNumber安全區(qū)域右下角縱坐標
widthNumber安全區(qū)域的寬度,單位邏輯像素
heightNumber安全區(qū)域的高度,單位邏輯像素

safeAreaInsets 的結(jié)構(gòu)

參數(shù)類型說明
leftNumber安全區(qū)域左側(cè)插入位置
rightNumber安全區(qū)域右側(cè)插入位置
topNumber安全區(qū)頂部插入位置
bottomNumber安全區(qū)域底部插入位置

#language 返回值說明

language的國際規(guī)范是BCP47規(guī)范,分為三段,主語言-次語言-地區(qū)。例如zh-Hans-CN,表示 中文-簡體-中國大陸

但除了主語言外,后兩者均可省略。在不同平臺,它們的省略規(guī)則也不相同。

  • app-ios,不省略,返回zh-Hans-CN
  • app-android、web、微信小程序,省略次語言,返回zh-CN
  • uni-app框架和應(yīng)用的多語言,以及支付寶小程序,則用zh-Hans來表示簡體中文

所以獲取語言后,不能直接字符串比較,需要拆段比較,npm上也有專門做BCP47語言規(guī)范比較的庫。

#deviceId 返回值說明

Web、小程序、iOS,屬于對用戶隱私保護比較嚴格的平臺,在這些平臺很難獲取有效的設(shè)備唯一標記。

Android也已經(jīng)改進用戶隱私保護。在極老的手機上可以無限制獲取imei,在次老的手機上,獲取imei等隱私信息時需要彈框讓用戶授權(quán)。新的Android手機(Android10以上)已經(jīng)徹底無法獲取imei了。

所以標記設(shè)備,大多只能依靠本地存儲一個隨機數(shù)來標記。

deviceId,在app-android平臺,會根據(jù)優(yōu)先使用imei、mac(僅在用戶已授權(quán)的情況下,如果發(fā)現(xiàn)需要授權(quán)或未授權(quán),則跳過此步驟),如果沒有獲取到就使用隨機生成的標識。其他平臺是直接使用隨機生成的標識。

當使用本地存貯的隨機數(shù)時,發(fā)生以下情況將導致deviceId失效:

  • 卸載App
  • Android上重置App數(shù)據(jù)
  • 瀏覽器清空緩存或開啟隱私模式,

app下需要廣告追蹤的場景,在iOS上可以使用idfa (opens new window)、部分國產(chǎn)Android手機可以使用OAID(opens new window)

#deviceModel 返回值說明

uni-app 3.5.1+ 版本規(guī)范了 deviceModel 返回值,例如之前返回 iPhone11ProMax 新版本返回值為 iPhone 11 Pro Max,各設(shè)備型號參考規(guī)范 (opens new window)中 Generation 對應(yīng)的值

注意:新機型剛推出一段時間會顯示 Unknown,官方會盡快進行適配。

#其他注意

  • deviceType
    • app-ios 只支持 phone、pad。

    • app-android 支持 phone、padtv、car、watch、vr、appliance、undefined、unknown,關(guān)于各個類型的更詳細解釋參考Android官方文檔 (opens new window)。

    • 其中,app-android 平臺下 pad 類型的判斷,在國產(chǎn)pad等非google官方設(shè)備上并不一定準確。如果有需要開發(fā)者可自行根據(jù)型號或屏幕大小判斷。uni-app框架源碼中判斷pad的java代碼如下,供參考:

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

       

  • osThemeapp-ios 只有將應(yīng)用主題設(shè)置為跟隨系統(tǒng)時才能獲取到系統(tǒng)的主題。小程序也有類似限制。
  • 屏幕高度 = 原生NavigationBar高度(含狀態(tài)欄高度)+ 可使用窗口高度 + 原生TabBar高度
  • windowHeight不包含NavigationBar和TabBar的高度
  • Web端,windowTop等于NavigationBar高度,windowBottom等于TabBar高度
  • App端,windowTop等于透明狀態(tài)NavigationBar高度,windowBottom等于透明狀態(tài)TabBar高度
  • 高度相關(guān)信息,要放在 onReady 里獲取。太早取不到。

本API在其他小程序的文檔鏈接:

#示例

調(diào)用代碼示例

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

在不同平臺 getSystemInfo 的返回值(表格較長,可縮放頁面后拖動橫向滾動條)

標明 - 的都為 undefined,其他值都與所列出項相同

字段名稱App-AndroidApp-iOSh5Android uniMPsdkiOS uniMPsdkmp-weixinmp-alipaymp-baidump-toutiao
appId__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001__UNI__8BB4001
appNametesttesttesttesttesttesttesttesttest
appVersion1.0.01.0.01.0.01.0.01.0.01.0.01.0.01.0.01.0.0
appVersionCode100100100100100100100100100
appLanguagezh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-Hanszh-Hans
browserNamechromewkwebviewsafarichromewkwebview----
browserVersion96.0.4664.10413.4.1313.0.388.0.4324.9315.4----
deviceIdd3db0944da20f333F791564F-853B-47B6-8CB8-27FF5931505916518284854447835016c7eafa7ed8774c0dF791564F-853B-47B6-8CB8-27FF59315059165217828572038477316536215804846585135165335963981121358216538995501084056633
deviceBrandxiaomiapple-huaweiappleiphoneiphoneiphoneapple
deviceModelMi10ProiPhone13ProMaxiPhoneMXW-AN00iPhoneSimulatoriPhone6/7/8PlusiPhone14,3iPhone6/7/8iPhone6
deviceTypephonephonephonephonephonephonephonephonephone
deviceOrientationportraitportraitportraitportraitportraitportrait-portrait-
devicePixelRatio2.568750143051147532333322
hostName--safariMPLauncherV3uniMPDemoWeChat、wxworkalipay、amap、DINGTALK、UC、QUARK、AK、YKbaiduboxapp 等百度宿主平臺枚舉值列表(opens new window)Douyin、Toutiao、news_article_lite、live_stream、XiGua、PPX
hostVersion--13.0.31.01.0.08.0.510.2.232.45.06.6.3
hostLanguage--zh-CNzh-CNzh-Hans-CNzh-CNzh-CNzh-CN 
hostTheme---lightlight----
hostPackageName---com.example.mplauncherv3io.dcloud.hellounimp----
hostSDKVersion---3.4.133.4.132.24.22.7.63.450.162.49.0
osNameandroidiosiosandroidiosiosiosiosios
osVersion1215.513.2.31015.410.0.115.515.510.0.1
osLanguagezh-CNzh-Hans-CN-zh-CNzh-Hans-CN----
osThemelightlight-lightlight----
osAndroidAPILevel31--29-----
romNameMIUI--HarmonyOS-----
romVersionV130--2.0.0-----
uniPlatformappappwebappappmp-weixinmp-alipaymp-baidump-toutiao
uniCompileVersion3.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.13
uniRuntimeVersion3.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.133.4.13

二、uni.getSystemInfoSync()

獲取系統(tǒng)信息的同步接口。調(diào)用參數(shù)和返回值同上getSystemInfo

三、總結(jié)

uni.getSystemInfo()  

(1) deviceType 獲取設(shè)備類型,phone、pad、pc

(2) deviceOrientation 獲取設(shè)備方向,豎屏 portrait橫屏 landscape

(3) osName 獲取系統(tǒng)名稱,ios、android、windows、macos (APP只有ios、android)

相關(guān)文章

最新評論