第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

鴻蒙Next環(huán)境設(shè)備查詢Environment用法總結(jié)

標(biāo)簽:
HarmonyOS

一、概述

Environment是ArkUI框架在应用程序启动时创建的单例对象,用于提供一系列描述应用程序运行状态的属性,其所有属性不可变(应用不可写入)且为简单类型,主要为AppStorage提供设备环境相关信息,以辅助应用根据设备环境做出不同的处理逻辑。

二、Environment内置参数

  1. accessibilityEnabled:数据类型为boolean,用于获取无障碍屏幕读取是否启用。
  2. colorMode:类型为ColorMode,其取值包括ColorMode.LIGHT(浅色)和ColorMode.DARK(深色),用于表示色彩模型类型。
  3. fontScale:数据类型为number,表示字体大小比例,范围在[0.85, 1.45]之间。
  4. fontWeightScale:也是number类型,用于表示字体粗细程度,范围是[0.6, 1.6]
  5. layoutDirection:类型为LayoutDirection,包含LayoutDirection.LTR(从左到右)和LayoutDirection.RTL(从右到左),用于确定布局方向类型。
  6. languageCodestring类型,存储当前系统语言值,且取值必须为小写字母,例如zh

三、使用场景

(一)从UI中访问Environment参数

  1. 存入AppStorage并链接到Component
    • 使用Environment.envProp('languageCode', 'en');将设备运行的环境变量(如语言code)存入AppStorage,其中'en'为默认值。
    • 然后可以在组件中使用@StorageProp('languageCode') lang : string = 'en';将其链接到Component中,实现设备环境到Component的更新链:Environment --> AppStorage --> Component
    • 注意,@StorageProp关联的环境参数可以在本地更改,但不能同步回AppStorage中,因为应用对环境变量参数不可写,只能查询。例如:
// 将设备languageCode存入AppStorage中
Environment.envProp('languageCode', 'en');
@Entry
@Component
struct Index {
  @StorageProp('languageCode') languageCode: string = 'en';
  build() {
    Row() {
      Column() {
        // 输出当前设备的languageCode
        Text(this.languageCode)
      }
    }
  }
}

(二)应用逻辑使用Environment

  1. 获取并使用环境变量
    • 首先使用Environment.envProp('languageCode', 'en');将设备运行的languageCode存入AppStorage。
    • 接着从AppStorage获取单向绑定的languageCode变量,如const lang: SubscribedAbstractProperty<string> = AppStorage.prop('languageCode');,然后根据该变量的值进行逻辑判断,例如:
// 使用Environment.EnvProp将设备运行languageCode存入AppStorage中;
Environment.envProp('languageCode', 'en');
// 从AppStorage获取单向绑定的languageCode的变量
const lang: SubscribedAbstractProperty<string> = AppStorage.prop('languageCode');
if (lang.get() === 'zh') {
  console.info('你好');
} else {
  console.info('Hello!');
}

四、限制条件

Environment和UIContext相关联,需要在UIContext明确的时候才可以调用。通常可以通过在runScopedTask里明确上下文,否则将导致无法查询到设备环境数据。例如在EntryAbility.ets中:

import { UIAbility } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
export default class EntryAbility extends UIAbility {
  onWindowStageCreate(windowStage: window.WindowStage) {
    windowStage.loadContent('pages/Index');
    let window = windowStage.getMainWindow()
    window.then(window => {
      let uicontext = window.getUIContext()
      uicontext.runScopedTask(() => {
        Environment.envProp('languageCode', 'en');
      })
    })
  }
}
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消