HarmonyOS 鸿蒙Next 设置应用显示模式固定为浅色模式

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 设置应用显示模式固定为浅色模式

按照文档提示,使用this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK) 的方式去设置应用显示模式没有起作用,一直是跟随系统的显示模式。

3 回复

应用主动设置深浅色模式:即颜色只固定,不跟随系统模式变动。 监听深浅色切换事件:this.context.config.colorMode以及onConfigurationUpdate监听颜色模式变得,参考https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-app-ability-configuration-V5 。demo如下:

import { AbilityConstant, Configuration, UIAbility, Want } from '@kit.AbilityKit';

import { hilog } from '@kit.PerformanceAnalysisKit';

import { window } from '@kit.ArkUI';

import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {

  colorMode: number | undefined = 0

  onConfigurationUpdate(newConfig: Configuration): void {

    this.colorMode = newConfig.colorMode

    let windowStage: window.WindowStage | undefined = AppStorage.get('windowStage')

    if (windowStage !== undefined) {

      this.changeColor(windowStage)

    }

  }

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {

    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');

    this.colorMode = this.context.config.colorMode

  }

  onDestroy(): void {

    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');

  }

  changeColor(windowStage: window.WindowStage) {

    let windowClass: window.Window | null

    windowStage.getMainWindow((err: BusinessError, data) => {

      let errCode: number = err.code;

      if (errCode) {

        console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));

        return;

      }

      windowClass = data;

      console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data));

      let sysBarProps: window.SystemBarProperties = {

        statusBarColor: this.colorMode === 0 ? '#aa00ff0b' : '#ff00ff',

        navigationBarColor: '#00ff00',

        // 以下两个属性从API Version 8开始支持

        statusBarContentColor: this.colorMode === 0 ? '#aaff0000' : '#ff002aff',

        navigationBarContentColor: '#ffffff'

      };

      windowClass.setWindowSystemBarProperties(sysBarProps, (err: BusinessError) => {

        let errCode: number = err.code;

        if (errCode) {

          console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));

          return;

        }

        console.info('Succeeded in setting the system bar properties.');

      });

    })

  }

  onWindowStageCreate(windowStage: window.WindowStage): void {

    // Main window is created, set main page for this ability

    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

    AppStorage.setOrCreate('windowStage', windowStage)

    this.changeColor(windowStage)

    windowStage.loadContent('pages/Index', (err) => {

      if (err.code) {

        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');

        return;

      }

      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');

    });

  }

  onWindowStageDestroy(): void {

    // Main window is destroyed, release UI related resources

    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');

  }

  onForeground(): void {

    // Ability has brought to foreground

    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');

  }

  onBackground(): void {

    // Ability has back to background

    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');

  }

}

更多关于HarmonyOS 鸿蒙Next 设置应用显示模式固定为浅色模式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是在 Ability 的 onWindowStageCreate 中设置的吗?

在HarmonyOS 鸿蒙Next系统中,若要将应用显示模式固定为浅色模式,可以通过以下步骤进行操作:

  1. 开发者选项设置

    • 首先,确保你的设备已开启开发者模式。若未开启,前往“设置” > “关于手机” > 连续点击“版本号”7次以启用开发者模式。
    • 进入“设置” > “系统和更新” > “开发人员选项”。
  2. 强制应用浅色模式

    • 在开发人员选项中,寻找“强制应用使用浅色模式”或类似名称的设置项。
    • 勾选该选项,使所有应用强制采用浅色模式显示。
  3. 应用级设置(如适用)

    • 某些应用可能支持独立设置显示模式。可在应用内“设置”或“偏好设置”中寻找相关选项,并固定为浅色模式。
  4. 重启应用或设备

    • 完成上述设置后,重启相关应用或整个设备,以确保设置生效。

请注意,不是所有应用都支持强制浅色模式,具体效果可能因应用而异。此外,系统更新可能会改变设置路径或选项名称,请参考最新系统文档进行操作。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部