HarmonyOS 鸿蒙Next Environment 使用不生效
HarmonyOS 鸿蒙Next Environment 使用不生效
在系统设置中修改语言、字体大小、字体粗细、暗黑模式等参数, 启动demo之后colorMode, fontScale变更均未生效, languageCode、fontWeightScale 可以获取到新更改的值
示例代码:
Environment.envProp('languageCode', 'en');
Environment.envProp('colorMode', ColorMode.DARK);
Environment.envProp('fontScale', 1);
Environment.envProp('fontWeightScale', 1);
// 从AppStorage获取单向绑定的languageCode的变量
const lang: SubscribedAbstractProperty<string> = AppStorage.prop('languageCode');
const colorMode: SubscribedAbstractProperty<ColorMode> = AppStorage.prop('colorMode');
const fontScale: SubscribedAbstractProperty<number> = AppStorage.prop('fontScale');
const fontWeightScale: SubscribedAbstractProperty<number> = AppStorage.prop('fontWeightScale');
console.info(`这是测试: ${lang.get()}`);
console.info(`这是测试: ${colorMode.get()}`);
console.info(`这是测试: ${fontScale.get()}`);
console.info(`这是测试: ${fontWeightScale.get()}`);
更多关于HarmonyOS 鸿蒙Next Environment 使用不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
应用对环境变量参数是不可写的,使用Environment.envProp只能在Environment中进行查询,无法修改,而对于Environment的内置参数fontScale,目前单框架的工程机并没有适配,规格如此,所以在系统设置里更改字体大小时,Environment中也只能查询到默认值。
文档链接:‘https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-environment-V5#%E4%BB%8Eui%E4%B8%AD%E8%AE%BF%E9%97%AEenvironment%E5%8F%82%E6%95%B0’
如果你希望在修改系统字体大小后,应用能够同步更改字体大小,同时可以使用回调函数EnvironmentCallback的config.fontSizeScale来动态监听并获取到修改后的值:
一、应用跟随系统字体大小的配置如下:
1.AppScope/resources/base/profile/configuration.json
{
"configuration": {
"fontSizeScale": "followSystem",
"fontSizeMaxScale": "3.2"
}
}
2.AppScope/app.json5
{
“app”: {
“bundleName”: “com.xylink.video.myapplication”,
“vendor”: “example”,
“versionCode”: 1000000,
“versionName”: “1.0.0”,
“icon”: “$media:app_icon”,
“label”: “$string:app_name”,
“configuration”: “$profile:configuration”
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
二、查询应用的动态切换字体大小的值:
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
//this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT);
hilog.info(0x0000, ‘testTag’, ‘%{public}s’, ‘Ability onCreate’);
let envCallback: EnvironmentCallback = {
onConfigurationUpdated(config) {
console.info(envCallback onConfigurationUpdated success: ${<span class="hljs-built_in">JSON</span>.stringify(config)}
);
console.info(“language===” + config.language)
console.info(“colorMode===” + config.colorMode)
console.info(“fontScale===” + config.fontSizeScale)
console.info(“fontWeightScale===” + config.fontWeightScale)
},
onMemoryLevel(level) {
console.log(onMemoryLevel level: ${<span class="hljs-built_in">JSON</span>.stringify(level)}
);
}
};
<span class="hljs-keyword">let</span> applicationContext = <span class="hljs-keyword">this</span>.context.getApplicationContext();
<span class="hljs-keyword">try</span> {
applicationContext.on(<span class="hljs-string">'environment'</span>, envCallback);
} <span class="hljs-keyword">catch</span> (paramError) {
}
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
更多关于HarmonyOS 鸿蒙Next Environment 使用不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS 鸿蒙Next Environment使用不生效的问题,可以尝试以下解决步骤:
-
检查开发环境:
- 确保操作系统版本、内存、处理器等硬件条件满足HarmonyOS的开发要求。
- 验证DevEco Studio及鸿蒙SDK是否安装正确,且为最新版本。
-
验证项目配置:
- 检查
build-profile.json5
文件中的abiFilters
是否包含了正确的架构类型(如x86_64)。 - 确保项目配置与HarmonyOS Next环境兼容。
- 检查
-
查看日志文件:
- IDE和鸿蒙SDK的日志文件中可能包含更具体的错误信息,有助于定位问题。
-
清理缓存和重启:
- 清除电脑缓存或重启设备,尝试解决临时性的运行错误。
-
重新创建模拟器:
- 如果模拟器配置不正确或内存不足,尝试重新创建模拟器,并手动设置合适的内存和磁盘大小。
如果以上步骤均无法解决问题,可能是更深层次的系统或兼容性问题。此时,建议检查是否有最新的系统更新或补丁,或者尝试在不同的硬件和操作系统环境下运行。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。