From 1284b2111e4e99152c055a802ebd86f6304883d3 Mon Sep 17 00:00:00 2001 From: zhuzijia Date: Wed, 2 Aug 2023 14:46:30 +0800 Subject: [PATCH] fixed ccc48ad from https://gitee.com/zhuzijia/docs/pulls/21810 fix Signed-off-by: zhuzijia Change-Id: I97ab9a7275fdd5bd073bd9c95420843d8ce906b1 --- .../quick-start/arkts-environment.md | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/quick-start/arkts-environment.md b/zh-cn/application-dev/quick-start/arkts-environment.md index 4e69f5950e..feba33c01e 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 -- GitLab