js-apis-app-ability-configuration.md 2.8 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.app.ability.Configuration (Configuration)
D
donglin 已提交
2

M
mingxihua 已提交
3
定义环境变化信息。Configuration是接口定义,仅做字段声明。
D
donglin 已提交
4 5 6 7 8 9 10

> **说明:**
> 
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase

11
| 名称 | 类型 | 可读 | 可写 | 说明 |
D
donglin 已提交
12
| -------- | -------- | -------- | -------- | -------- |
13 14 15
| language | string | 是 | 是 | 表示应用程序的当前语言,例如“zh"。 |
| colorMode | [ColorMode](js-apis-app-ability-configurationConstant.md#configurationconstantcolormode) | 是 | 是 | 表示深浅色模式,默认为浅色。取值范围:<br />- COLOR_MODE_NOT_SET:未设置<br />- COLOR_MODE_LIGHT:浅色模式<br />- COLOR_MODE_DARK:深色模式 |
| direction | [Direction](js-apis-app-ability-configurationConstant.md#configurationconstantdirection) | 是 | 否 | 表示屏幕方向,取值范围:<br />- DIRECTION_NOT_SET:未设置<br />- DIRECTION_HORIZONTAL:水平方向<br />- DIRECTION_VERTICAL:垂直方向 |
M
mingxihua 已提交
16
| screenDensity  | [ScreenDensity](js-apis-app-ability-configurationConstant.md#configurationconstantscreendensity) | 是 | 否 | 表示屏幕像素密度,取值范围:<br />- SCREEN_DENSITY_NOT_SET:未设置<br />- SCREEN_DENSITY_SDPI:120<br />- SCREEN_DENSITY_MDPI:160<br />- SCREEN_DENSITY_LDPI:240<br />- SCREEN_DENSITY_XLDPI:320<br />- SCREEN_DENSITY_XXLDPI:480<br />- SCREEN_DENSITY_XXXLDPI:640 |
17
| displayId  | number | 是 | 否 | 表示应用所在的物理屏幕ID。 |
D
donglin 已提交
18 19 20 21 22
| hasPointerDevice  | boolean | 是 | 否 | 指示指针类型设备是否已连接,如键鼠、触控板等。 |

具体字段描述参考ohos.app.ability.Configuration.d.ts文件

**示例:**
23

D
donglin 已提交
24
  ```ts
25
import UIAbility from '@ohos.app.ability.UIAbility';
26

27
export default class EntryAbility extends UIAbility {
28
    onCreate(want, launchParam) {
29 30
        let envCallback = {
            onConfigurationUpdated(config) {
M
mingxihua 已提交
31
                console.info(`envCallback onConfigurationUpdated success: ${JSON.stringify(config)}`);
32 33 34 35 36 37 38 39 40 41
                let language = config.language;
                let colorMode = config.colorMode;
                let direction = config.direction;
                let screenDensity = config.screenDensity;
                let displayId = config.displayId;
                let hasPointerDevice = config.hasPointerDevice;
            }
        };
        try {
            let applicationContext = this.context.getApplicationContext();
M
mingxihua 已提交
42
            let callbackId = applicationContext.on('environment', envCallback);
M
mingxihua 已提交
43
            console.log('callbackId: ${callbackId}');
44
        } catch (paramError) {
M
mingxihua 已提交
45
            console.log('error: ${paramError.code}, ${paramError.message}');
46
        }
D
donglin 已提交
47
    }
48
}
D
donglin 已提交
49 50
  ```