Environment:設(shè)備環(huán)境查詢

2024-01-25 12:07 更新

開發(fā)者如果需要應(yīng)用程序運行的設(shè)備的環(huán)境參數(shù),以此來作出不同的場景判斷,比如多語言,暗黑模式等,需要用到Environment設(shè)備環(huán)境查詢。

Environment是ArkUI框架在應(yīng)用程序啟動時創(chuàng)建的單例對象。它為AppStorage提供了一系列描述應(yīng)用程序運行狀態(tài)的屬性。Environment的所有屬性都是不可變的(即應(yīng)用不可寫入),所有的屬性都是簡單類型。

Environment內(nèi)置參數(shù)

數(shù)據(jù)類型

描述

accessibilityEnabled

boolean

獲取無障礙屏幕讀取是否啟用。

colorMode

ColorMode enum

色彩模型類型:選項為ColorMode.light: 淺色,ColorMode.Dark: 深色。

fontScale

number

字體大小比例,范圍: [0.85, 1.45]。

fontWeightScale

LayoutDirection

字體粗細程度,范圍: [0.6, 1.6]。

layoutDirection

boolean

布局方向類型:包括LayoutDirection.LTR: 從左到右,LayoutDirection.RTL: 從右到左。

languageCode

string

當(dāng)前系統(tǒng)語言值,取值必須為小寫字母, 例如zh。

使用場景

從UI中訪問Environment參數(shù)

  • 使用Environment.EnvProp將設(shè)備運行的環(huán)境變量存入AppStorage中:
    1. // 將設(shè)備的語言code存入AppStorage,默認值為en
    2. Environment.EnvProp('languageCode', 'en');
  • 可以使用@StorageProp鏈接到Component中。
    1. @StorageProp('languageCode') lang : string = 'en';

設(shè)備環(huán)境到Component的更新鏈:Environment --> AppStorage -->Component。

說明

@StorageProp關(guān)聯(lián)的環(huán)境參數(shù)可以在本地更改,但不能同步回AppStorage中,因為應(yīng)用對環(huán)境變量參數(shù)是不可寫的,只能在Environment中查詢。

  1. // 將設(shè)備languageCode存入AppStorage中
  2. Environment.EnvProp('languageCode', 'en');
  3. @Entry
  4. @Component
  5. struct Index {
  6. @StorageProp('languageCode') languageCode: string = 'en';
  7. build() {
  8. Row() {
  9. Column() {
  10. // 輸出當(dāng)前設(shè)備的languageCode
  11. Text(this.languageCode)
  12. }
  13. }
  14. }
  15. }

應(yīng)用邏輯使用Environment

  1. // 使用Environment.EnvProp將設(shè)備運行l(wèi)anguageCode存入AppStorage中;
  2. Environment.EnvProp('languageCode', 'en');
  3. // 從AppStorage獲取單向綁定的languageCode的變量
  4. const lang: SubscribedAbstractProperty<string> = AppStorage.Prop('languageCode');
  5. if (lang.get() === 'zh') {
  6. console.info('你好');
  7. } else {
  8. console.info('Hello!');
  9. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號