diff --git a/zh-cn/application-dev/quick-start/arkts-environment.md b/zh-cn/application-dev/quick-start/arkts-environment.md index 4e69f5950e81eace3d8b06d0c034595160ab72f8..feba33c01e6e9c58303e65153de87ead8e3f16fe 100644 --- a/zh-cn/application-dev/quick-start/arkts-environment.md +++ b/zh-cn/application-dev/quick-start/arkts-environment.md @@ -16,11 +16,10 @@ Environment是ArkUI框架在应用程序启动时创建的单例对象。它为A ```ts // 将设备的语言code存入AppStorage,默认值为en - // 后续设备的语言设置切换,都将同步到AppStorage中 Environment.EnvProp('languageCode', 'en'); ``` -- 可以使用\@StorageProp链接到Component中。Component会根据设备运行环境的变化而更新: +- 可以使用\@StorageProp链接到Component中。 ```ts @StorageProp('languageCode') lang : string = 'en'; @@ -70,3 +69,29 @@ if (lang.get() === 'zh') { console.info('Hello!'); } ``` + + +## 限制条件 + + +Environment和UIContext相关联,需要在[UIContext](../reference/apis/js-apis-arkui-UIContext.md#uicontext)明确的时候才可以调用。可以通过在[runScopedTask](../reference/apis/js-apis-arkui-UIContext.md#runscopedtask)里明确上下文。如果没有在UIContext明确的地方调用,将导致无法查询到设备环境数据。 + + +```ts +// EntryAbility.ts +import UIAbility from '@ohos.app.ability.UIAbility'; +import window from '@ohos.window'; + +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'); + }) + }) + } +} +``` \ No newline at end of file