1# @ohos.window (窗口) 2 3窗口提供管理窗口的一些基础能力,包括对当前窗口的创建、销毁、各属性设置,以及对各窗口间的管理调度。 4 5该模块提供以下窗口相关的常用功能: 6 7- [Window](#window):当前窗口实例,窗口管理器管理的基本单元。 8- [WindowStage](#windowstage9):窗口管理器。管理各个基本窗口单元。 9 10> **说明:** 11> 12> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 13 14## 导入模块 15 16```js 17import window from '@ohos.window'; 18``` 19 20## WindowType<sup>7+</sup> 21 22窗口类型枚举。 23 24**系统能力:** SystemCapability.WindowManager.WindowManager.Core 25 26| 名称 | 值 | 说明 | 27| ----------------- | ------ | ------------------ | 28| TYPE_APP | 0 | 表示应用子窗口。<br>**模型约束:** 此接口仅可在FA模型下使用。 | 29| TYPE_SYSTEM_ALERT | 1 | 表示系统告警窗口。 | 30| TYPE_INPUT_METHOD<sup>9+</sup> | 2 | 表示输入法窗口。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 31| TYPE_STATUS_BAR<sup>9+</sup> | 3 | 表示状态栏窗口。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 32| TYPE_PANEL<sup>9+</sup> | 4 | 表示通知栏。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 33| TYPE_KEYGUARD<sup>9+</sup> | 5 | 表示锁屏。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 34| TYPE_VOLUME_OVERLAY<sup>9+</sup> | 6 | 表示音量条。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 35| TYPE_NAVIGATION_BAR<sup>9+</sup> | 7 | 表示导航栏窗口。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 36| TYPE_FLOAT<sup>9+</sup> | 8 | 表示悬浮窗。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**需要权限:** ohos.permission.SYSTEM_FLOAT_WINDOW | 37| TYPE_WALLPAPER<sup>9+</sup> | 9 | 表示壁纸。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 38| TYPE_DESKTOP<sup>9+</sup> | 10 | 表示桌面。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 39| TYPE_LAUNCHER_RECENT<sup>9+</sup> | 11 | 表示多任务中心。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 40| TYPE_LAUNCHER_DOCK<sup>9+</sup> | 12 | 表示桌面Dock栏。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 41| TYPE_VOICE_INTERACTION<sup>9+</sup> | 13 | 表示智慧语音。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 42| TYPE_POINTER<sup>9+</sup> | 14 | 表示鼠标。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 43| TYPE_FLOAT_CAMERA<sup>9+</sup> | 15 | 表示相机类型悬浮窗。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 44| TYPE_DIALOG<sup>9+</sup> | 16 | 表示模态窗口。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 45| TYPE_SCREENSHOT<sup>9+</sup> | 17 | 表示截屏窗口。<br>**模型约束:** 此接口仅可在Stage模型下使用。<br>**系统接口:** 此接口为系统接口。 | 46 47## Configuration<sup>9+</sup> 48 49创建子窗口或系统窗口时的参数。 50 51**系统能力:** SystemCapability.WindowManager.WindowManager.Core 52 53| 名称 | 类型 | 必填 | 说明 | 54| ---------- | -------------------------- | -- |-----------------------------------------------------------------------------| 55| name | string | 是 | 窗口名字。 | 56| windowType | [WindowType](#windowtype7) | 是 | 窗口类型。 | 57| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 否 | 当前应用上下文信息。不设置,则默认为空。<br>FA模型下不需要使用该参数,即可创建子窗口。<br>Stage模型下需要使用该参数,用于创建系统窗口。 | 58| displayId | number | 否 | 当前物理屏幕id。不设置,则默认为-1,该参数应为整数。 | 59| parentId | number | 否 | 父窗口id。不设置,则默认为-1,该参数应为整数。 | 60 61## AvoidAreaType<sup>7+</sup> 62 63窗口内容需要规避区域的类型枚举。 64 65**系统能力:** SystemCapability.WindowManager.WindowManager.Core 66 67| 名称 | 值 | 说明 | 68| -------------------------------- | ---- | ------------------------------------------------------------ | 69| TYPE_SYSTEM | 0 | 表示系统默认区域。一般包括状态栏、导航栏,各设备系统定义可能不同。 | 70| TYPE_CUTOUT | 1 | 表示刘海屏区域。 | 71| TYPE_SYSTEM_GESTURE<sup>9+</sup> | 2 | 表示手势区域。 | 72| TYPE_KEYBOARD<sup>9+</sup> | 3 | 表示软键盘区域。 | 73 74## WindowMode<sup>7+</sup> 75 76窗口模式枚举。 77 78**系统接口:** 此接口为系统接口。 79 80**系统能力:** SystemCapability.WindowManager.WindowManager.Core 81 82| 名称 | 值 | 说明 | 83| ---------- | ---- | ----------------------------- | 84| UNDEFINED | 1 | 表示APP未定义窗口模式。 | 85| FULLSCREEN | 2 | 表示APP全屏模式。 | 86| PRIMARY | 3 | 表示APP分屏多窗口主要模式。 | 87| SECONDARY | 4 | 表示APP分屏多窗口次要模式。 | 88| FLOATING | 5 | 表示APP自由悬浮形式窗口模式。 | 89 90## WindowLayoutMode<sup>9+</sup> 91 92窗口布局模式枚举。 93 94**系统接口:** 此接口为系统接口。 95 96**系统能力:** SystemCapability.WindowManager.WindowManager.Core 97 98| 名称 | 值 | 说明 | 99| ---------- | ---- | ----------------------------- | 100| WINDOW_LAYOUT_MODE_CASCADE | 0 | 表示使用层叠布局模式。 | 101| WINDOW_LAYOUT_MODE_TILE | 1 | 表示使用平铺布局模式。 | 102 103## SystemBarProperties 104 105状态栏、导航栏的属性。 106 107**系统能力:** SystemCapability.WindowManager.WindowManager.Core 108 109| 名称 | 类型 | 必填 | 说明 | 110| -------------------------------------- | -------- | ---- | ------------------------------------------------------------ | 111| statusBarColor | string | 否 | 状态栏背景颜色,为十六进制RGB或ARGB颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。默认值:`#0x66000000`。 | 112| isStatusBarLightIcon<sup>7+</sup> | boolean | 否 | 状态栏图标是否为高亮状态。true表示高亮;false表示不高亮。默认值:false。 | 113| statusBarContentColor<sup>8+</sup> | string | 否 | 状态栏文字颜色。当设置此属性后, `isStatusBarLightIcon`属性设置无效。默认值:`0xE5FFFFFF。` | 114| navigationBarColor | string | 否 | 导航栏背景颜色,为十六进制RGB或ARGB颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。默认值:`#0x66000000。` | 115| isNavigationBarLightIcon<sup>7+</sup> | boolean | 否 | 导航栏图标是否为高亮状态。true表示高亮;false表示不高亮。默认值:false。 | 116| navigationBarContentColor<sup>8+</sup> | string | 否 | 导航栏文字颜色。当设置此属性后, `isNavigationBarLightIcon`属性设置无效。默认值:`#0xE5FFFFFF。` | 117 118## Orientation<sup>9+</sup> 119 120窗口显示方向类型枚举。 121 122**系统能力:** SystemCapability.WindowManager.WindowManager.Core 123 124| 名称 | 值 | 说明 | 125| ------------------------------------- | ---- | ----------------------------- | 126| UNSPECIFIED | 0 | 表示未定义方向模式,由系统判定。 | 127| PORTRAIT | 1 | 表示竖屏显示模式。 | 128| LANDSCAPE | 2 | 表示横屏显示模式。 | 129| PORTRAIT_INVERTED | 3 | 表示反向竖屏显示模式。 | 130| LANDSCAPE_INVERTED | 4 | 表示反向横屏显示模式。 | 131| AUTO_ROTATION | 5 | 表示传感器自动旋转模式。 | 132| AUTO_ROTATION_PORTRAIT | 6 | 表示传感器自动竖向旋转模式。 | 133| AUTO_ROTATION_LANDSCAPE | 7 | 表示传感器自动横向旋转模式。 | 134| AUTO_ROTATION_RESTRICTED | 8 | 表示受开关控制的自动旋转模式。 | 135| AUTO_ROTATION_PORTRAIT_RESTRICTED | 9 | 表示受开关控制的自动竖向旋转模式。 | 136| AUTO_ROTATION_LANDSCAPE_RESTRICTED | 10 | 表述受开关控制的自动横向旋转模式。 | 137| LOCKED | 11 | 表示锁定模式。 | 138 139## BlurStyle<sup>9+</sup> 140 141窗口模糊类型枚举。 142 143**系统接口:** 此接口为系统接口。 144 145**系统能力:** SystemCapability.WindowManager.WindowManager.Core 146 147| 名称 | 值 | 说明 | 148| ------- | ---- | -------------------- | 149| OFF | 0 | 表示关闭模糊。 | 150| THIN | 1 | 表示较薄的模糊类型。 | 151| REGULAR | 2 | 表示适中的模糊类型。 | 152| THICK | 3 | 表示较厚的模糊类型。 | 153 154## SystemBarRegionTint<sup>8+</sup> 155 156单个导航栏或状态栏回调信息。 157 158**系统接口:** 此接口为系统接口。 159 160**系统能力:** SystemCapability.WindowManager.WindowManager.Core 161 162| 名称 | 类型 | 可读 | 可写 | 说明 | 163| --------------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ | 164| type | [WindowType](#windowtype7) | 是 | 否 | 当前属性改变的系统栏类型,仅支持类型为导航栏、状态栏的系统栏。 | 165| isEnable | boolean | 是 | 否 | 当前系统栏是否显示。true表示显示;false表示不显示。 | 166| region | [Rect](#rect7) | 是 | 否 | 当前系统栏的位置及大小。 | 167| backgroundColor | string | 是 | 否 | 系统栏背景颜色,为十六进制RGB或ARGB颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。 | 168| contentColor | string | 是 | 否 | 系统栏文字颜色。 | 169 170## SystemBarTintState<sup>8+</sup> 171 172当前系统栏回调信息集合。 173 174**系统接口:** 此接口为系统接口。 175 176**系统能力:** SystemCapability.WindowManager.WindowManager.Core 177 178| 名称 | 类型 | 可读 | 可写 | 说明 | 179| ---------- | --------------------------------------------------- | ---- | ---- | ---------------------------- | 180| displayId | number | 是 | 否 | 当前物理屏幕id,该参数应为整数。 | 181| regionTint | Array<[SystemBarRegionTint](#systembarregiontint8)> | 是 | 否 | 当前已改变的所有系统栏信息。 | 182 183## Rect<sup>7+</sup> 184 185窗口矩形区域。 186 187**系统能力:** SystemCapability.WindowManager.WindowManager.Core 188 189| 名称 | 类型 | 可读 | 可写 | 说明 | 190| ------ | -------- | ---- | ---- | ------------------ | 191| left | number | 是 | 是 | 矩形区域的左边界,单位为px,该参数为整数。 | 192| top | number | 是 | 是 | 矩形区域的上边界,单位为px,该参数应为整数。 | 193| width | number | 是 | 是 | 矩形区域的宽度,单位为px,该参数应为整数。 | 194| height | number | 是 | 是 | 矩形区域的高度,单位为px,该参数应为整数。 | 195 196## AvoidArea<sup>7+</sup> 197 198窗口内容规避区域。 199 200**系统能力:** SystemCapability.WindowManager.WindowManager.Core 201 202| 名称 | 类型 | 可读 | 可写 | 说明 | 203| ---------- | ------------- | ---- | ---- | ------------------ | 204| visible<sup>9+</sup> | boolean | 是 | 是 | 规避区域是否可见。true表示可见;false表示不可见。 | 205| leftRect | [Rect](#rect7) | 是 | 是 | 屏幕左侧的矩形区。 | 206| topRect | [Rect](#rect7) | 是 | 是 | 屏幕顶部的矩形区。 | 207| rightRect | [Rect](#rect7) | 是 | 是 | 屏幕右侧的矩形区。 | 208| bottomRect | [Rect](#rect7) | 是 | 是 | 屏幕底部的矩形区。 | 209 210## Size<sup>7+</sup> 211 212窗口大小。 213 214**系统能力:** SystemCapability.WindowManager.WindowManager.Core 215 216| 名称 | 类型 | 可读 | 可写 | 说明 | 217| ------ | -------- | ---- | ---- | ---------- | 218| width | number | 是 | 是 | 窗口宽度,单位为px,该参数应为整数。 | 219| height | number | 是 | 是 | 窗口高度,单位为px,该参数应为整数。 | 220 221## WindowProperties 222 223窗口属性。 224 225**系统能力:** SystemCapability.WindowManager.WindowManager.Core 226 227| 名称 | 类型 | 可读 | 可写 | 说明 | 228| ------------------------------------- | ------------------------- | ---- | ---- |--------------------------------------------------------------------------------------------------------| 229| windowRect<sup>7+</sup> | [Rect](#rect7) | 是 | 是 | 窗口尺寸。 | 230| type<sup>7+</sup> | [WindowType](#windowtype7) | 是 | 是 | 窗口类型。 | 231| isFullScreen | boolean | 是 | 是 | 是否全屏,默认为false。true表示全屏;false表示非全屏。 | 232| isLayoutFullScreen<sup>7+</sup> | boolean | 是 | 是 | 窗口是否为沉浸式,默认为false。true表示沉浸式;false表示非沉浸式。 | 233| focusable<sup>7+</sup> | boolean | 是 | 否 | 窗口是否可聚焦,默认为true。true表示可聚焦;false表示不可聚焦。 | 234| touchable<sup>7+</sup> | boolean | 是 | 否 | 窗口是否可触摸,默认为true。true表示可触摸;false表示不可触摸。 | 235| brightness | number | 是 | 是 | 屏幕亮度。该参数为浮点数,可设置的亮度范围为[0.0, 1.0],其取1.0时表示最大亮度值。如果窗口没有设置亮度值,表示亮度跟随系统,此时获取到的亮度值为-1。 | 236| dimBehindValue<sup>(deprecated)</sup> | number | 是 | 是 | 靠后窗口的暗度值。该参数为浮点数,取值范围为[0.0, 1.0],其取1.0表示最暗。<br>- **说明:** 从API version 9开始废弃。<br>- 从 API version 7开始支持。 | 237| isKeepScreenOn | boolean | 是 | 是 | 屏幕是否常亮,默认为false。true表示常亮;false表示不常亮。 | 238| isPrivacyMode<sup>7+</sup> | boolean | 是 | 是 | 隐私模式,默认为false。true表示模式开启;false表示模式关闭。 | 239| isRoundCorner<sup>(deprecated)</sup> | boolean | 是 | 是 | 窗口是否为圆角。默认为false。true表示圆角;false表示非圆角。<br>- **说明:** 从API version 9开始废弃。<br/>- 从 API version 7开始支持。 | 240| isTransparent<sup>7+</sup> | boolean | 是 | 是 | 窗口是否透明。默认为false。true表示透明;false表示不透明。 | 241| id<sup>9+</sup> | number | 是 | 否 | 窗口ID,默认值为0,该参数应为整数。 | 242 243## ColorSpace<sup>8+</sup> 244 245色域模式。 246 247**系统能力:** SystemCapability.WindowManager.WindowManager.Core 248 249| 名称 | 值 | 说明 | 250| ---------- | ------ | -------------- | 251| DEFAULT | 0 | 默认SRGB色域模式。 | 252| WIDE_GAMUT | 1 | 广色域模式。 | 253 254## ScaleOptions<sup>9+</sup> 255 256缩放参数。 257 258**系统接口:** 此接口为系统接口。 259 260**系统能力**:SystemCapability.WindowManager.WindowManager.Core 261 262| 名称 | 类型 | 可读 | 可写 | 说明 | 263| ------ | -------- | ---- | ---- |--------------------------------------------| 264| x | number | 否 | 是 | X轴的缩放参数。该参数为浮点数,默认值为1.0。 | 265| y | number | 否 | 是 | Y轴的缩放参数。该参数为浮点数,默认值为1.0。 | 266| pivotX | number | 否 | 是 | 缩放中心点X轴坐标。该参数为浮点数,默认值为0.5, 取值范围[0.0, 1.0]。 | 267| pivotY | number | 否 | 是 | 缩放中心点Y轴坐标。该参数为浮点数,默认值为0.5, 取值范围[0.0, 1.0]。 | 268 269## RotateOptions<sup>9+</sup> 270 271旋转参数。 272 273**系统接口:** 此接口为系统接口。 274 275**系统能力**:SystemCapability.WindowManager.WindowManager.Core 276 277| 名称 | 类型 | 可读 | 可写 | 说明 | 278| ------ | -------- | ---- | ---- |---------------------------------------------| 279| x | number | 否 | 是 | 绕X轴的旋转角度。该参数为浮点数,默认值为0.0。 | 280| y | number | 否 | 是 | 绕Y轴的旋转角度。该参数为浮点数,默认值为0.0。 | 281| z | number | 否 | 是 | 绕Z轴的旋转角度。该参数为浮点数,默认值为0.0。 | 282| pivotX | number | 否 | 是 | 旋转中心点X轴坐标。该参数为浮点数,默认值为0.5, 取值范围为[0.0, 1.0]。 | 283| pivotY | number | 否 | 是 | 旋转中心点Y轴坐标。该参数为浮点数,默认值为0.5, 取值范围为[0.0, 1.0]。 | 284 285## TranslateOptions<sup>9+</sup> 286 287平移参数。 288 289**系统接口:** 此接口为系统接口。 290 291**系统能力**:SystemCapability.WindowManager.WindowManager.Core 292 293| 名称 | 类型 | 可读 | 可写 | 说明 | 294| ---- | -------- | ---- | ---- | ---------------------------- | 295| x | number | 否 | 是 | X轴的平移参数。该参数为浮点数,默认值为0.0。 | 296| y | number | 否 | 是 | Y轴的平移参数。该参数为浮点数,默认值为0.0。 | 297| z | number | 否 | 是 | Z轴的平移参数。该参数为浮点数,默认值为0.0。 | 298 299## window.createWindow<sup>9+</sup> 300 301createWindow(config: Configuration, callback: AsyncCallback<Window>): void 302 303创建子窗口或者系统窗口,使用callback异步回调。 304 305**系统能力:** SystemCapability.WindowManager.WindowManager.Core 306 307**参数:** 308 309| 参数名 | 类型 | 必填 | 说明 | 310| -------- | -------------------------------------- | -- | --------------------------------- | 311| config | [Configuration](#configuration9) | 是 | 创建窗口时的参数。 | 312| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前创建的窗口对象。 | 313 314**错误码:** 315 316以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 317 318| 错误码ID | 错误信息 | 319| ------- | -------------------------------- | 320| 1300001 | Repeated operation. | 321| 1300006 | This window context is abnormal. | 322 323**示例:** 324 325```js 326let windowClass = null; 327let config = {name: "alertWindow", windowType: window.WindowType.TYPE_SYSTEM_ALERT, ctx: this.context}; 328try { 329 window.createWindow(config, (err, data) => { 330 if (err.code) { 331 console.error('Failed to create the window. Cause: ' + JSON.stringify(err)); 332 return; 333 } 334 windowClass = data; 335 console.info('Succeeded in creating the window. Data: ' + JSON.stringify(data)); 336 windowClass.resetSize(500, 1000); 337 }); 338} catch (exception) { 339 console.error('Failed to create the window. Cause: ' + JSON.stringify(exception)); 340} 341``` 342 343## window.createWindow<sup>9+</sup> 344 345createWindow(config: Configuration): Promise<Window> 346 347创建子窗口或者系统窗口,使用Promise异步回调。 348 349**系统能力:** SystemCapability.WindowManager.WindowManager.Core 350 351**参数:** 352 353| 参数名 | 类型 | 必填 | 说明 | 354| ------ | -------------------------------- | -- | ------------------ | 355| config | [Configuration](#configuration9) | 是 | 创建窗口时的参数。 | 356 357**返回值:** 358 359| 类型 | 说明 | 360| -------------------------------- | ------------------------------------ | 361| Promise<[Window](#window)> | Promise对象。返回当前创建的窗口对象。 | 362 363**错误码:** 364 365以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 366 367| 错误码ID | 错误信息 | 368| ------- | -------------------------------- | 369| 1300001 | Repeated operation. | 370| 1300006 | This window context is abnormal. | 371 372**示例:** 373 374```js 375let windowClass = null; 376let config = {name: "alertWindow", windowType: window.WindowType.TYPE_SYSTEM_ALERT, ctx: this.context}; 377try { 378 let promise = window.createWindow(config); 379 promise.then((data)=> { 380 windowClass = data; 381 console.info('Succeeded in creating the window. Data:' + JSON.stringify(data)); 382 }).catch((err)=>{ 383 console.error('Failed to create the Window. Cause:' + JSON.stringify(err)); 384 }); 385} catch (exception) { 386 console.error('Failed to create the window. Cause: ' + JSON.stringify(exception)); 387} 388``` 389 390## window.findWindow<sup>9+</sup> 391 392findWindow(name: string): Window 393 394查找name所对应的窗口。 395 396**系统能力:** SystemCapability.WindowManager.WindowManager.Core 397 398**参数:** 399 400| 参数名 | 类型 | 必填 | 说明 | 401| ------ | ------ | ---- | -------- | 402| name | string | 是 | 窗口id。 | 403 404**返回值:** 405 406| 类型 | 说明 | 407| ----------------- | ------------------- | 408| [Window](#window) | 当前查找的窗口对象。 | 409 410**示例:** 411 412```js 413let windowClass = null; 414try { 415 windowClass = window.findWindow('alertWindow'); 416} catch (exception) { 417 console.error('Failed to find the Window. Cause: ' + JSON.stringify(exception)); 418} 419``` 420 421## window.getLastWindow<sup>9+</sup> 422 423getLastWindow(ctx: BaseContext, callback: AsyncCallback<Window>): void 424 425获取当前应用内最后显示的窗口,使用callback异步回调。 426 427**系统能力:** SystemCapability.WindowManager.WindowManager.Core 428 429**参数:** 430 431| 参数名 | 类型 | 必填 | 说明 | 432| -------- | -------------------------------------- | -- | ---------------------------------------- | 433| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | 434| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前应用内最后显示的窗口对象。 | 435 436**错误码:** 437 438以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 439 440| 错误码ID | 错误信息 | 441| ------- | -------------------------------- | 442| 1300002 | This window state is abnormal. | 443| 1300006 | This window context is abnormal. | 444 445**示例:** 446 447```js 448let windowClass = null; 449try { 450 window.getLastWindow(this.context, (err, data) => { 451 if (err.code) { 452 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); 453 return; 454 } 455 windowClass = data; 456 console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)); 457 }); 458} catch (exception) { 459 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(exception)); 460} 461``` 462 463## window.getLastWindow<sup>9+</sup> 464 465getLastWindow(ctx: BaseContext): Promise<Window> 466 467获取当前应用内最后显示的窗口,使用Promise异步回调。 468 469**系统能力:** SystemCapability.WindowManager.WindowManager.Core 470 471**参数:** 472 473| 参数名 | 类型 | 必填 | 说明 | 474| ------ | ----------- | ---- | ------------------------------------------------------------ | 475| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | 476 477**返回值:** 478 479| 类型 | 说明 | 480| -------------------------------- | ------------------------------------------- | 481| Promise<[Window](#window)> | Promise对象。返回当前应用内最后显示的窗口对象。 | 482 483**错误码:** 484 485以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 486 487| 错误码ID | 错误信息 | 488| ------- | -------------------------------- | 489| 1300002 | This window state is abnormal. | 490| 1300006 | This window context is abnormal. | 491 492**示例:** 493 494```js 495let windowClass = null; 496try { 497 let promise = window.getLastWindow(this.context); 498 promise.then((data)=> { 499 windowClass = data; 500 console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)); 501 }).catch((err)=>{ 502 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); 503 }); 504} catch (exception) { 505 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(exception)); 506} 507``` 508 509## window.minimizeAll<sup>9+</sup> 510minimizeAll(id: number, callback: AsyncCallback<void>): void 511 512最小化某显示设备下的所有窗口。 513 514**系统接口:** 此接口为系统接口。 515 516**系统能力:** SystemCapability.WindowManager.WindowManager.Core 517 518**参数:** 519 520| 参数名 | 类型 | 必填 | 说明 | 521| -------- | ------------------------- | ---- | -------------- | 522| id | number | 是 | 显示设备[Display](js-apis-display.md#display)的ID号,该参数仅支持整数输入。 | 523| callback | AsyncCallback<void> | 是 | 回调信息。 | 524 525**错误码:** 526 527以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 528 529| 错误码ID | 错误信息 | 530| ------- | -------------------------------------------- | 531| 1300003 | This window manager service works abnormally. | 532 533**示例:** 534 535```js 536import display from '@ohos.display' 537 538let displayClass = null; 539try { 540 displayClass = display.getDefaultDisplaySync(); 541 542 try { 543 window.minimizeAll(displayClass.id, (err) => { 544 if(err.code) { 545 console.error('Failed to minimize all windows. Cause: ' + JSON.stringify(err)); 546 return; 547 } 548 console.info('Succeeded in minimizing all windows.'); 549 }); 550 } catch (exception) { 551 console.error('Failed to minimize all windows. Cause: ' + JSON.stringify(exception)); 552 } 553} catch (exception) { 554 console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception)); 555} 556``` 557 558## window.minimizeAll<sup>9+</sup> 559minimizeAll(id: number): Promise<void> 560 561最小化某显示设备下的所有窗口。 562 563**系统接口:** 此接口为系统接口。 564 565**系统能力:** SystemCapability.WindowManager.WindowManager.Core 566 567**参数:** 568 569| 参数名 | 类型 | 必填 | 说明 | 570| -------- | ------------------------- | ---- | -------------- | 571| id | number | 是 | 显示设备[Display](js-apis-display.md#display)的ID号,该参数仅支持整数输入。 | 572 573**返回值:** 574 575| 类型 | 说明 | 576| ------------------- | ------------------------- | 577| Promise<void> | 无返回结果的Promise对象。 | 578 579**错误码:** 580 581以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 582 583| 错误码ID | 错误信息 | 584| ------- | -------------------------------------------- | 585| 1300003 | This window manager service works abnormally. | 586 587**示例:** 588 589```js 590import display from '@ohos.display' 591 592let displayClass = null; 593try { 594 displayClass = display.getDefaultDisplaySync(); 595 596 try { 597 let promise = window.minimizeAll(displayClass.id); 598 promise.then(()=> { 599 console.info('Succeeded in minimizing all windows.'); 600 }).catch((err)=>{ 601 console.error('Failed to minimize all windows. Cause: ' + JSON.stringify(err)); 602 }); 603 } catch (exception) { 604 console.error('Failed to minimize all windows. Cause: ' + JSON.stringify(exception)); 605 } 606} catch (exception) { 607 console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception)); 608} 609``` 610 611## window.toggleShownStateForAllAppWindows<sup>9+</sup> 612toggleShownStateForAllAppWindows(callback: AsyncCallback<void>): void 613 614多窗口快速切换时隐藏或者恢复应用窗口。 615 616**系统接口:** 此接口为系统接口。 617 618**系统能力:** SystemCapability.WindowManager.WindowManager.Core 619 620**参数:** 621 622| 参数名 | 类型 | 必填 | 说明 | 623| -------- | ------------------------- | ---- | -------------- | 624| callback | AsyncCallback<void> | 是 | 回调信息。 | 625 626**错误码:** 627 628以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 629 630| 错误码ID | 错误信息 | 631| ------- | -------------------------------------------- | 632| 1300003 | This window manager service works abnormally. | 633 634**示例:** 635 636```js 637window.toggleShownStateForAllAppWindows((err) => { 638 if (err.code) { 639 console.error('Failed to toggle shown state for all app windows. Cause: ' + JSON.stringify(err)); 640 return; 641 } 642 console.info('Succeeded in toggling shown state for all app windows.'); 643}); 644``` 645 646## window.toggleShownStateForAllAppWindows<sup>9+</sup> 647toggleShownStateForAllAppWindows(): Promise<void> 648 649多窗口快速切换时隐藏或者恢复应用窗口。 650 651**系统接口:** 此接口为系统接口。 652 653**系统能力:** SystemCapability.WindowManager.WindowManager.Core 654 655**返回值:** 656 657| 类型 | 说明 | 658| ------------------- | ------------------------- | 659| Promise<void> | 无返回结果的Promise对象。 | 660 661**错误码:** 662 663以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 664 665| 错误码ID | 错误信息 | 666| ------- | -------------------------------------------- | 667| 1300003 | This window manager service works abnormally. | 668 669**示例:** 670 671```js 672let promise = window.toggleShownStateForAllAppWindows(); 673promise.then(()=> { 674 console.info('Succeeded in toggling shown state for all app windows.'); 675}).catch((err)=>{ 676 console.error('Failed to toggle shown state for all app windows. Cause: ' + JSON.stringify(err)); 677}); 678``` 679 680## window.setWindowLayoutMode<sup>9+</sup> 681setWindowLayoutMode(mode: WindowLayoutMode, callback: AsyncCallback<void>): void 682 683设置窗口布局模式。 684 685**系统接口:** 此接口为系统接口。 686 687**系统能力:** SystemCapability.WindowManager.WindowManager.Core 688 689**参数:** 690 691| 参数名 | 类型 | 必填 | 说明 | 692| -------- | ------------------------- | ---- | -------------- | 693| mode | [WindowLayoutMode](#windowlayoutmode9) | 是 | 设置的窗口布局模式。 | 694| callback | AsyncCallback<void> | 是 | 回调信息。 | 695 696**错误码:** 697 698以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 699 700| 错误码ID | 错误信息 | 701| ------- | -------------------------------------------- | 702| 1300003 | This window manager service works abnormally. | 703 704**示例:** 705 706```js 707try { 708 window.setWindowLayoutMode(window.WindowLayoutMode.WINDOW_LAYOUT_MODE_CASCADE, (err) => { 709 if(err.code) { 710 console.error('Failed to set window layout mode. Cause: ' + JSON.stringify(err)); 711 return; 712 } 713 console.info('Succeeded in setting window layout mode.'); 714 }); 715} catch (exception) { 716 console.error('Failed to set window layout mode. Cause: ' + JSON.stringify(exception)); 717} 718``` 719 720## window.setWindowLayoutMode<sup>9+</sup> 721setWindowLayoutMode(mode: WindowLayoutMode): Promise<void> 722 723设置窗口布局模式。 724 725**系统接口:** 此接口为系统接口。 726 727**系统能力:** SystemCapability.WindowManager.WindowManager.Core 728 729**参数:** 730 731| 参数名 | 类型 | 必填 | 说明 | 732| -------- | ------------------------- | ---- | -------------- | 733| mode | [WindowLayoutMode](#windowlayoutmode9) | 是 | 设置的窗口布局模式。 | 734 735**返回值:** 736 737| 类型 | 说明 | 738| ------------------- | ------------------------- | 739| Promise<void> | 无返回结果的Promise对象。 | 740 741**错误码:** 742 743以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 744 745| 错误码ID | 错误信息 | 746| ------- | -------------------------------------------- | 747| 1300003 | This window manager service works abnormally. | 748 749**示例:** 750 751```js 752try { 753 let promise = window.setWindowLayoutMode(window.WindowLayoutMode.WINDOW_LAYOUT_MODE_CASCADE); 754 promise.then(()=> { 755 console.info('Succeeded in setting window layout mode.'); 756 }).catch((err)=>{ 757 console.error('Failed to set window layout mode. Cause: ' + JSON.stringify(err)); 758 }); 759} catch (exception) { 760 console.error('Failed to set window layout mode. Cause: ' + JSON.stringify(exception)); 761} 762``` 763 764## window.on('systemBarTintChange')<sup>8+</sup> 765 766on(type: 'systemBarTintChange', callback: Callback<SystemBarTintState>): void 767 768开启状态栏、导航栏属性变化的监听。 769 770**系统接口:** 此接口为系统接口。 771 772**系统能力:** SystemCapability.WindowManager.WindowManager.Core 773 774**参数:** 775 776| 参数名 | 类型 | 必填 | 说明 | 777| -------- | ---------------------------------------------------------- | ---- | ------------------------------------------------------------ | 778| type | string | 是 | 监听事件,固定为'systemBarTintChange',即导航栏、状态栏属性变化事件。 | 779| callback | Callback<[SystemBarTintState](#systembartintstate8)> | 是 | 回调函数。返回当前的状态栏、导航栏信息集合。 | 780 781**示例:** 782 783```js 784try { 785 window.on('systemBarTintChange', (data) => { 786 console.info('Succeeded in enabling the listener for systemBarTint changes. Data: ' + JSON.stringify(data)); 787 }); 788} catch (exception) { 789 console.error('Failed to enable the listener for systemBarTint changes. Cause: ' + JSON.stringify(exception)); 790} 791``` 792 793## window.off('systemBarTintChange')<sup>8+</sup> 794 795off(type: 'systemBarTintChange', callback?: Callback<SystemBarTintState >): void 796 797关闭状态栏、导航栏属性变化的监听。 798 799**系统接口:** 此接口为系统接口。 800 801**系统能力:** SystemCapability.WindowManager.WindowManager.Core 802 803**参数:** 804 805| 参数名 | 类型 | 必填 | 说明 | 806| -------- | ---------------------------------------------------------- | ---- | ------------------------------------------------------------ | 807| type | string | 是 | 监听事件,固定为'systemBarTintChange',即导航栏、状态栏属性变化事件。 | 808| callback | Callback<[SystemBarTintState](#systembartintstate8)> | 否 | 回调函数。返回当前的状态栏、导航栏信息集合。 | 809 810**示例:** 811 812```js 813try { 814 window.off('systemBarTintChange'); 815} catch (exception) { 816 console.error('Failed to disable the listener for systemBarTint changes. Cause: ' + JSON.stringify(exception)); 817} 818``` 819 820## window.create<sup>(deprecated)</sup> 821 822create(id: string, type: WindowType, callback: AsyncCallback<Window>): void 823 824创建子窗口,使用callback异步回调。 825 826> **说明:** 827> 828> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[createWindow()](#windowcreatewindow9)。 829 830**模型约束:** 此接口仅可在FA模型下使用。 831 832**系统能力:** SystemCapability.WindowManager.WindowManager.Core 833 834**参数:** 835 836| 参数名 | 类型 | 必填 | 说明 | 837| -------- | -------------------------------------- | ---- | ------------------------------------ | 838| id | string | 是 | 窗口id。 | 839| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | 840| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前创建的子窗口对象。 | 841 842**示例:** 843 844```js 845let windowClass = null; 846window.create('first', window.WindowType.TYPE_APP,(err,data) => { 847 if(err.code){ 848 console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err)); 849 return; 850 } 851 windowClass = data; 852 console.info('Succeeded in creating the subWindow. Data: ' + JSON.stringify(data)); 853}); 854``` 855 856## window.create<sup>(deprecated)</sup> 857 858create(id: string, type: WindowType): Promise<Window> 859 860创建子窗口,使用Promise异步回调。 861 862> **说明:** 863> 864> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[createWindow()](#windowcreatewindow9-1)。 865 866**模型约束:** 此接口仅可在FA模型下使用。 867 868**系统能力:** SystemCapability.WindowManager.WindowManager.Core 869 870**参数:** 871 872| 参数名 | 类型 | 必填 | 说明 | 873| ------ | ------------------------- | ---- | ---------- | 874| id | string | 是 | 窗口id。 | 875| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | 876 877**返回值:** 878 879| 类型 | 说明 | 880| -------------------------------- | --------------------------------------- | 881| Promise<[Window](#window)> | Promise对象。返回当前创建的子窗口对象。 | 882 883**示例:** 884 885```js 886let windowClass = null; 887let promise = window.create('first', window.WindowType.TYPE_APP); 888promise.then((data)=> { 889 windowClass = data; 890 console.info('Succeeded in creating the subWindow. Data: ' + JSON.stringify(data)); 891}).catch((err)=>{ 892 console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err)); 893}); 894``` 895 896## window.create<sup>(deprecated)</sup> 897 898create(ctx: BaseContext, id: string, type: WindowType, callback: AsyncCallback<Window>): void 899 900创建系统窗口,使用callback异步回调。 901 902> **说明:** 903> 904> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[createWindow()](#windowcreatewindow9)。 905 906**系统能力:** SystemCapability.WindowManager.WindowManager.Core 907 908**参数:** 909 910| 参数名 | 类型 | 必填 | 说明 | 911| -------- | ------------------------------------------------------- | ---- | ------------------------------------ | 912| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | 913| id | string | 是 | 窗口id。 | 914| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | 915| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前创建的子窗口对象。 | 916 917**示例:** 918 919```js 920let windowClass = null; 921window.create(this.context, 'alertWindow', window.WindowType.TYPE_SYSTEM_ALERT, (err, data) => { 922 if (err.code) { 923 console.error('Failed to create the window. Cause: ' + JSON.stringify(err)); 924 return; 925 } 926 windowClass = data; 927 console.info('Succeeded in creating the window. Data: ' + JSON.stringify(data)); 928 windowClass.resetSize(500, 1000); 929}); 930``` 931 932## window.create<sup>(deprecated)</sup> 933 934create(ctx: BaseContext, id: string, type: WindowType): Promise<Window> 935 936创建系统窗口,使用Promise异步回调。 937 938> **说明:** 939> 940> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[createWindow()](#windowcreatewindow9-1)。 941 942**系统能力:** SystemCapability.WindowManager.WindowManager.Core 943 944**参数:** 945 946| 参数名 | 类型 | 必填 | 说明 | 947| ------ | ------------------------- | ---- | ------------------------------------------------------------ | 948| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | 949| id | string | 是 | 窗口id。 | 950| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | 951 952**返回值:** 953 954| 类型 | 说明 | 955| -------------------------------- | --------------------------------------- | 956| Promise<[Window](#window)> | Promise对象。返回当前创建的子窗口对象。 | 957 958**示例:** 959 960```js 961let windowClass = null; 962let promise = window.create(this.context, 'alertWindow', window.WindowType.TYPE_SYSTEM_ALERT); 963promise.then((data)=> { 964 windowClass = data; 965 console.info('Succeeded in creating the window. Data:' + JSON.stringify(data)); 966}).catch((err)=>{ 967 console.error('Failed to create the Window. Cause:' + JSON.stringify(err)); 968}); 969``` 970 971## window.find<sup>(deprecated)</sup> 972 973find(id: string, callback: AsyncCallback<Window>): void 974 975查找id所对应的窗口,使用callback异步回调。 976 977> **说明:** 978> 979> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[findWindow()](#windowfindwindow9)。 980 981**系统能力:** SystemCapability.WindowManager.WindowManager.Core 982 983**参数:** 984 985| 参数名 | 类型 | 必填 | 说明 | 986| -------- | -------------------------------------- | ---- | ------------------------------------ | 987| id | string | 是 | 窗口id。 | 988| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前查找到的窗口对象。 | 989 990**示例:** 991 992```js 993let windowClass = null; 994window.find('alertWindow', (err, data) => { 995 if (err.code) { 996 console.error('Failed to find the Window. Cause: ' + JSON.stringify(err)); 997 return; 998 } 999 windowClass = data; 1000 console.info('Succeeded in finding the window. Data: ' + JSON.stringify(data)); 1001}); 1002``` 1003 1004## window.find<sup>(deprecated)</sup> 1005 1006find(id: string): Promise<Window> 1007 1008查找id所对应的窗口,使用Promise异步回调。 1009 1010> **说明:** 1011> 1012> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[findWindow()](#windowfindwindow9)。 1013 1014**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1015 1016**参数:** 1017 1018| 参数名 | 类型 | 必填 | 说明 | 1019| ------ | ------ | ---- | -------- | 1020| id | string | 是 | 窗口id。 | 1021 1022**返回值:** 1023 1024| 类型 | 说明 | 1025| -------------------------------- | ------------------------------------- | 1026| Promise<[Window](#window)> | Promise对象。返回当前查找的窗口对象。 | 1027 1028**示例:** 1029 1030```js 1031let windowClass = null; 1032let promise = window.find('alertWindow'); 1033promise.then((data)=> { 1034 windowClass = data; 1035 console.info('Succeeded in finding the window. Data: ' + JSON.stringify(data)); 1036}).catch((err)=>{ 1037 console.error('Failed to find the Window. Cause: ' + JSON.stringify(err)); 1038}); 1039``` 1040 1041## window.getTopWindow<sup>(deprecated)</sup> 1042 1043getTopWindow(callback: AsyncCallback<Window>): void 1044 1045获取当前应用内最后显示的窗口,使用callback异步回调。 1046 1047> **说明:** 1048> 1049> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[getLastWindow()](#windowgetlastwindow9)。 1050 1051**模型约束:** 此接口仅可在FA模型下使用。 1052 1053**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1054 1055**参数:** 1056 1057| 参数名 | 类型 | 必填 | 说明 | 1058| -------- | -------------------------------------- | ---- | -------------------------------------------- | 1059| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前应用内最后显示的窗口对象。 | 1060 1061**示例:** 1062 1063```js 1064let windowClass = null; 1065window.getTopWindow((err, data) => { 1066 if (err.code) { 1067 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); 1068 return; 1069 } 1070 windowClass = data; 1071 console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)); 1072}); 1073``` 1074 1075## window.getTopWindow<sup>(deprecated)</sup> 1076 1077getTopWindow(): Promise<Window> 1078 1079获取当前应用内最后显示的窗口,使用Promise异步回调。 1080 1081> **说明:** 1082> 1083> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[getLastWindow()](#windowgetlastwindow9-1)。 1084 1085**模型约束:** 此接口仅可在FA模型下使用。 1086 1087**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1088 1089**返回值:** 1090 1091| 类型 | 说明 | 1092| -------------------------------- | ----------------------------------------------- | 1093| Promise<[Window](#window)> | Promise对象。返回当前应用内最后显示的窗口对象。 | 1094 1095**示例:** 1096 1097```js 1098let windowClass = null; 1099let promise = window.getTopWindow(); 1100promise.then((data)=> { 1101 windowClass = data; 1102 console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)); 1103}).catch((err)=>{ 1104 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); 1105}); 1106``` 1107 1108## window.getTopWindow<sup>(deprecated)</sup> 1109 1110getTopWindow(ctx: BaseContext, callback: AsyncCallback<Window>): void 1111 1112获取当前应用内最后显示的窗口,使用callback异步回调。 1113 1114> **说明:** 1115> 1116> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[getLastWindow()](#windowgetlastwindow9)。 1117 1118**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1119 1120**参数:** 1121 1122| 参数名 | 类型 | 必填 | 说明 | 1123| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 1124| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | 1125| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前应用内最后显示的窗口对象。 | 1126 1127**示例:** 1128 1129```js 1130let windowClass = null; 1131window.getTopWindow(this.context, (err, data) => { 1132 if (err.code) { 1133 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); 1134 return; 1135 } 1136 windowClass = data; 1137 console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)); 1138}); 1139``` 1140 1141## window.getTopWindow<sup>(deprecated)</sup> 1142 1143getTopWindow(ctx: BaseContext): Promise<Window> 1144 1145获取当前应用内最后显示的窗口,使用Promise异步回调。 1146 1147> **说明:** 1148> 1149> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[getLastWindow()](#windowgetlastwindow9-1)。 1150 1151**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1152 1153**参数:** 1154 1155| 参数名 | 类型 | 必填 | 说明 | 1156| ------ | ----------- | ---- | ------------------------------------------------------------ | 1157| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | 1158 1159**返回值:** 1160 1161| 类型 | 说明 | 1162| -------------------------------- | ----------------------------------------------- | 1163| Promise<[Window](#window)> | Promise对象。返回当前应用内最后显示的窗口对象。 | 1164 1165**示例:** 1166 1167```js 1168let windowClass = null; 1169let promise = window.getTopWindow(this.context); 1170promise.then((data)=> { 1171 windowClass = data; 1172 console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)); 1173}).catch((err)=>{ 1174 console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); 1175}); 1176``` 1177 1178## Window 1179 1180当前窗口实例,窗口管理器管理的基本单元。 1181 1182下列API示例中都需先使用[getLastWindow()](#windowgetlastwindow9)、[createWindow()](#windowcreatewindow9)、[findWindow()](#windowfindwindow9)中的任一方法获取到Window实例,再通过此实例调用对应方法。 1183 1184### hide<sup>7+</sup> 1185 1186hide (callback: AsyncCallback<void>): void 1187 1188隐藏当前窗口,使用callback异步回调。 1189 1190**系统接口:** 此接口为系统接口。 1191 1192**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1193 1194**参数:** 1195 1196| 参数名 | 类型 | 必填 | 说明 | 1197| -------- | ------------------------- | ---- | ---------- | 1198| callback | AsyncCallback<void> | 是 | 回调函数。 | 1199 1200**错误码:** 1201 1202以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1203 1204| 错误码ID | 错误信息 | 1205| ------- | ------------------------------ | 1206| 1300002 | This window state is abnormal. | 1207 1208**示例:** 1209 1210```js 1211windowClass.hide((err) => { 1212 if (err.code) { 1213 console.error('Failed to hide the window. Cause: ' + JSON.stringify(err)); 1214 return; 1215 } 1216 console.info('Succeeded in hiding the window.'); 1217}); 1218``` 1219 1220### hide<sup>7+</sup> 1221 1222hide(): Promise<void> 1223 1224隐藏当前窗口,使用Promise异步回调。 1225 1226**系统接口:** 此接口为系统接口。 1227 1228**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1229 1230**返回值:** 1231 1232| 类型 | 说明 | 1233| ------------------- | ------------------------- | 1234| Promise<void> | 无返回结果的Promise对象。 | 1235 1236**错误码:** 1237 1238以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1239 1240| 错误码ID | 错误信息 | 1241| ------- | ------------------------------ | 1242| 1300002 | This window state is abnormal. | 1243 1244**示例:** 1245 1246```js 1247let promise = windowClass.hide(); 1248promise.then(()=> { 1249 console.info('Succeeded in hiding the window.'); 1250}).catch((err)=>{ 1251 console.error('Failed to hide the window. Cause: ' + JSON.stringify(err)); 1252}); 1253``` 1254 1255### hideWithAnimation<sup>9+</sup> 1256 1257hideWithAnimation(callback: AsyncCallback<void>): void 1258 1259隐藏当前窗口,过程中播放动画,使用callback异步回调。 1260 1261**系统接口:** 此接口为系统接口。 1262 1263**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1264 1265**参数:** 1266 1267| 参数名 | 类型 | 必填 | 说明 | 1268| -------- | ------------------------- | ---- | ---------- | 1269| callback | AsyncCallback<void> | 是 | 回调函数。 | 1270 1271**错误码:** 1272 1273以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1274 1275| 错误码ID | 错误信息 | 1276| ------- | -------------------------------------------- | 1277| 1300002 | This window state is abnormal. | 1278| 1300003 | This window manager service works abnormally. | 1279| 1300004 | Unauthorized operation. | 1280 1281**示例:** 1282 1283```js 1284windowClass.hideWithAnimation((err) => { 1285 if (err.code) { 1286 console.error('Failed to hide the window with animation. Cause: ' + JSON.stringify(err)); 1287 return; 1288 } 1289 console.info('Succeeded in hiding the window with animation.'); 1290}); 1291``` 1292 1293### hideWithAnimation<sup>9+</sup> 1294 1295hideWithAnimation(): Promise<void> 1296 1297隐藏当前窗口,过程中播放动画,使用Promise异步回调。 1298 1299**系统接口:** 此接口为系统接口。 1300 1301**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1302 1303**返回值:** 1304 1305| 类型 | 说明 | 1306| ------------------- | ------------------------- | 1307| Promise<void> | 无返回结果的Promise对象。 | 1308 1309**错误码:** 1310 1311以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1312 1313| 错误码ID | 错误信息 | 1314| ------- | -------------------------------------------- | 1315| 1300002 | This window state is abnormal. | 1316| 1300003 | This window manager service works abnormally. | 1317| 1300004 | Unauthorized operation. | 1318 1319**示例:** 1320 1321```js 1322let promise = windowClass.hideWithAnimation(); 1323promise.then(()=> { 1324 console.info('Succeeded in hiding the window with animation.'); 1325}).catch((err)=>{ 1326 console.error('Failed to hide the window with animation. Cause: ' + JSON.stringify(err)); 1327}); 1328``` 1329 1330### showWindow<sup>9+</sup> 1331 1332showWindow(callback: AsyncCallback<void>): void 1333 1334显示当前窗口,使用callback异步回调。 1335 1336**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1337 1338**参数:** 1339 1340| 参数名 | 类型 | 必填 | 说明 | 1341| -------- | ------------------------- | -- | --------- | 1342| callback | AsyncCallback<void> | 是 | 回调函数。 | 1343 1344**错误码:** 1345 1346以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1347 1348| 错误码ID | 错误信息 | 1349| ------- | ------------------------------ | 1350| 1300002 | This window state is abnormal. | 1351 1352**示例:** 1353 1354```js 1355windowClass.showWindow((err) => { 1356 if (err.code) { 1357 console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); 1358 return; 1359 } 1360 console.info('Succeeded in showing the window.'); 1361}); 1362``` 1363 1364### showWindow<sup>9+</sup> 1365 1366showWindow(): Promise<void> 1367 1368显示当前窗口,使用Promise异步回调。 1369 1370**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1371 1372**返回值:** 1373 1374| 类型 | 说明 | 1375| ------------------- | ----------------------- | 1376| Promise<void> | 无返回结果的Promise对象。 | 1377 1378**错误码:** 1379 1380以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1381 1382| 错误码ID | 错误信息 | 1383| ------- | ------------------------------ | 1384| 1300002 | This window state is abnormal. | 1385 1386**示例:** 1387 1388```js 1389let promise = windowClass.showWindow(); 1390promise.then(()=> { 1391 console.info('Succeeded in showing the window.'); 1392}).catch((err)=>{ 1393 console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); 1394}); 1395``` 1396 1397### showWithAnimation<sup>9+</sup> 1398 1399showWithAnimation(callback: AsyncCallback<void>): void 1400 1401显示当前窗口,过程中播放动画,使用callback异步回调。 1402 1403**系统接口:** 此接口为系统接口。 1404 1405**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1406 1407**参数:** 1408 1409| 参数名 | 类型 | 必填 | 说明 | 1410| -------- | ------------------------- | ---- | ---------- | 1411| callback | AsyncCallback<void> | 是 | 回调函数。 | 1412 1413**错误码:** 1414 1415以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1416 1417| 错误码ID | 错误信息 | 1418| ------- | -------------------------------------------- | 1419| 1300002 | This window state is abnormal. | 1420| 1300003 | This window manager service works abnormally. | 1421| 1300004 | Unauthorized operation. | 1422 1423**示例:** 1424 1425```js 1426windowClass.showWithAnimation((err) => { 1427 if (err.code) { 1428 console.error('Failed to show the window with animation. Cause: ' + JSON.stringify(err)); 1429 return; 1430 } 1431 console.info('Succeeded in showing the window with animation.'); 1432}); 1433``` 1434 1435### showWithAnimation<sup>9+</sup> 1436 1437showWithAnimation(): Promise<void> 1438 1439显示当前窗口,过程中播放动画,使用Promise异步回调。 1440 1441**系统接口:** 此接口为系统接口。 1442 1443**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1444 1445**返回值:** 1446 1447| 类型 | 说明 | 1448| ------------------- | ------------------------- | 1449| Promise<void> | 无返回结果的Promise对象。 | 1450 1451**错误码:** 1452 1453以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1454 1455| 错误码ID | 错误信息 | 1456| ------- | -------------------------------------------- | 1457| 1300002 | This window state is abnormal. | 1458| 1300003 | This window manager service works abnormally. | 1459| 1300004 | Unauthorized operation. | 1460 1461**示例:** 1462 1463```js 1464let promise = windowClass.showWithAnimation(); 1465promise.then(()=> { 1466 console.info('Succeeded in showing the window with animation.'); 1467}).catch((err)=>{ 1468 console.error('Failed to show the window with animation. Cause: ' + JSON.stringify(err)); 1469}); 1470``` 1471 1472### destroyWindow<sup>9+</sup> 1473 1474destroyWindow(callback: AsyncCallback<void>): void 1475 1476销毁当前窗口,使用callback异步回调。 1477 1478**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1479 1480**参数:** 1481 1482| 参数名 | 类型 | 必填 | 说明 | 1483| -------- | ------------------------- | -- | --------- | 1484| callback | AsyncCallback<void> | 是 | 回调函数。 | 1485 1486**错误码:** 1487 1488以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1489 1490| 错误码ID | 错误信息 | 1491| ------- | -------------------------------------------- | 1492| 1300002 | This window state is abnormal. | 1493| 1300003 | This window manager service works abnormally. | 1494 1495**示例:** 1496 1497```js 1498windowClass.destroyWindow((err) => { 1499 if (err.code) { 1500 console.error('Failed to destroy the window. Cause:' + JSON.stringify(err)); 1501 return; 1502 } 1503 console.info('Succeeded in destroying the window.'); 1504}); 1505``` 1506 1507### destroyWindow<sup>9+</sup> 1508 1509destroyWindow(): Promise<void> 1510 1511销毁当前窗口,使用Promise异步回调。 1512 1513**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1514 1515**返回值:** 1516 1517| 类型 | 说明 | 1518| ------------------- | ------------------------ | 1519| Promise<void> | 无返回结果的Promise对象。 | 1520 1521**错误码:** 1522 1523以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1524 1525| 错误码ID | 错误信息 | 1526| ------- | -------------------------------------------- | 1527| 1300002 | This window state is abnormal. | 1528| 1300003 | This window manager service works abnormally. | 1529 1530**示例:** 1531 1532```js 1533let promise = windowClass.destroyWindow(); 1534promise.then(()=> { 1535 console.info('Succeeded in destroying the window.'); 1536}).catch((err)=>{ 1537 console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err)); 1538}); 1539``` 1540 1541### moveWindowTo<sup>9+</sup> 1542 1543moveWindowTo(x: number, y: number, callback: AsyncCallback<void>): void 1544 1545移动窗口位置,使用callback异步回调。 1546 1547全屏模式窗口不支持该操作。 1548 1549**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1550 1551**参数:** 1552 1553| 参数名 | 类型 | 必填 | 说明 | 1554| -------- | ------------------------- | -- | --------------------------------------------- | 1555| x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移,单位为px,该参数仅支持整数输入。 | 1556| y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移,单位为px,该参数仅支持整数输入。 | 1557| callback | AsyncCallback<void> | 是 | 回调函数。 | 1558 1559**错误码:** 1560 1561以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1562 1563| 错误码ID | 错误信息 | 1564| ------- | -------------------------------------------- | 1565| 1300002 | This window state is abnormal. | 1566| 1300003 | This window manager service works abnormally. | 1567 1568**示例:** 1569 1570```js 1571try { 1572 windowClass.moveWindowTo(300, 300, (err)=>{ 1573 if (err.code) { 1574 console.error('Failed to move the window. Cause:' + JSON.stringify(err)); 1575 return; 1576 } 1577 console.info('Succeeded in moving the window.'); 1578 }); 1579} catch (exception) { 1580 console.error('Failed to move the window. Cause:' + JSON.stringify(exception)); 1581} 1582``` 1583 1584### moveWindowTo<sup>9+</sup> 1585 1586moveWindowTo(x: number, y: number): Promise<void> 1587 1588移动窗口位置,使用Promise异步回调。 1589 1590全屏模式窗口不支持该操作。 1591 1592**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1593 1594**参数:** 1595 1596| 参数名 | 类型 | 必填 | 说明 | 1597| -- | ----- | -- | --------------------------------------------- | 1598| x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移,单位为px,该参数仅支持整数输入。 | 1599| y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移,单位为px,该参数仅支持整数输入。 | 1600 1601**返回值:** 1602 1603| 类型 | 说明 | 1604| ------------------- | ------------------------ | 1605| Promise<void> | 无返回结果的Promise对象。 | 1606 1607**错误码:** 1608 1609以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1610 1611| 错误码ID | 错误信息 | 1612| ------- | -------------------------------------------- | 1613| 1300002 | This window state is abnormal. | 1614| 1300003 | This window manager service works abnormally. | 1615 1616**示例:** 1617 1618```js 1619try { 1620 let promise = windowClass.moveWindowTo(300, 300); 1621 promise.then(()=> { 1622 console.info('Succeeded in moving the window.'); 1623 }).catch((err)=>{ 1624 console.error('Failed to move the window. Cause: ' + JSON.stringify(err)); 1625 }); 1626} catch (exception) { 1627 console.error('Failed to move the window. Cause:' + JSON.stringify(exception)); 1628} 1629``` 1630 1631### resize<sup>9+</sup> 1632 1633resize(width: number, height: number, callback: AsyncCallback<void>): void 1634 1635改变当前窗口大小,使用callback异步回调。 1636 1637应用主窗口与子窗口存在大小限制,宽度范围:[320, 2560],高度范围:[240, 2560],单位为vp。 1638 1639系统窗口存在大小限制,宽度范围:[0, 2560],高度范围:[0, 2560],单位为vp。 1640 1641设置的宽度与高度受到此约束限制。 1642 1643全屏模式窗口不支持该操作。 1644 1645**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1646 1647**参数:** 1648 1649| 参数名 | 类型 | 必填 | 说明 | 1650| -------- | ------------------------- | -- | ------------------------ | 1651| width | number | 是 | 目标窗口的宽度,单位为px,该参数仅支持整数输入。 | 1652| height | number | 是 | 目标窗口的高度,单位为px,该参数仅支持整数输入。 | 1653| callback | AsyncCallback<void> | 是 | 回调函数。 | 1654 1655**错误码:** 1656 1657以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1658 1659| 错误码ID | 错误信息 | 1660| ------- | -------------------------------------------- | 1661| 1300002 | This window state is abnormal. | 1662| 1300003 | This window manager service works abnormally. | 1663 1664**示例:** 1665 1666```js 1667try { 1668 windowClass.resize(500, 1000, (err) => { 1669 if (err.code) { 1670 console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); 1671 return; 1672 } 1673 console.info('Succeeded in changing the window size.'); 1674 }); 1675} catch (exception) { 1676 console.error('Failed to change the window size. Cause:' + JSON.stringify(exception)); 1677} 1678``` 1679 1680### resize<sup>9+</sup> 1681 1682resize(width: number, height: number): Promise<void> 1683 1684改变当前窗口大小,使用Promise异步回调。 1685 1686应用主窗口与子窗口存在大小限制,宽度范围:[320, 2560],高度范围:[240, 2560],单位为vp。 1687 1688系统窗口存在大小限制,宽度范围:[0, 2560],高度范围:[0, 2560],单位为vp。 1689 1690设置的宽度与高度受到此约束限制。 1691 1692全屏模式窗口不支持该操作。 1693 1694**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1695 1696**参数:** 1697 1698| 参数名 | 类型 | 必填 | 说明 | 1699| ------ | ------ | -- | ------------------------ | 1700| width | number | 是 | 目标窗口的宽度,单位为px,该参数仅支持整数输入。 | 1701| height | number | 是 | 目标窗口的高度,单位为px,该参数仅支持整数输入。 | 1702 1703**返回值:** 1704 1705| 类型 | 说明 | 1706| ------------------- | ------------------------ | 1707| Promise<void> | 无返回结果的Promise对象。 | 1708 1709**错误码:** 1710 1711以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1712 1713| 错误码ID | 错误信息 | 1714| ------- | -------------------------------------------- | 1715| 1300002 | This window state is abnormal. | 1716| 1300003 | This window manager service works abnormally. | 1717 1718**示例:** 1719 1720```js 1721try { 1722 let promise = windowClass.resize(500, 1000); 1723 promise.then(()=> { 1724 console.info('Succeeded in changing the window size.'); 1725 }).catch((err)=>{ 1726 console.error('Failed to change the window size. Cause: ' + JSON.stringify(err)); 1727 }); 1728} catch (exception) { 1729 console.error('Failed to change the window size. Cause: ' + JSON.stringify(exception)); 1730} 1731``` 1732 1733### setWindowMode<sup>9+</sup> 1734 1735setWindowMode(mode: WindowMode, callback: AsyncCallback<void>): void 1736 1737设置窗口模式,使用callback异步回调。 1738 1739**系统接口:** 此接口为系统接口。 1740 1741**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1742 1743**参数:** 1744 1745| 参数名 | 类型 | 必填 | 说明 | 1746| -------- | -------------------------- | -- | --------- | 1747| mode | [WindowMode](#windowmode7) | 是 | 窗口模式。 | 1748| callback | AsyncCallback<void> | 是 | 回调函数。 | 1749 1750**错误码:** 1751 1752以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1753 1754| 错误码ID | 错误信息 | 1755| ------- | -------------------------------------------- | 1756| 1300002 | This window state is abnormal. | 1757| 1300003 | This window manager service works abnormally. | 1758 1759**示例:** 1760 1761```js 1762let mode = window.WindowMode.FULLSCREEN; 1763try { 1764 windowClass.setWindowMode(mode, (err) => { 1765 if (err.code) { 1766 console.error('Failed to set the window mode. Cause: ' + JSON.stringify(err)); 1767 return; 1768 } 1769 console.info('Succeeded in setting the window mode.'); 1770 }); 1771} catch (exception) { 1772 console.error('Failed to set the window mode. Cause: ' + JSON.stringify(exception)); 1773} 1774``` 1775 1776### setWindowMode<sup>9+</sup> 1777 1778setWindowMode(mode: WindowMode): Promise<void> 1779 1780设置窗口类型,使用Promise异步回调。 1781 1782**系统接口:** 此接口为系统接口。 1783 1784**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1785 1786**参数:** 1787 1788| 参数名 | 类型 | 必填 | 说明 | 1789| -------- | -------------------------- | -- | --------- | 1790| mode | [WindowMode](#windowmode7) | 是 | 窗口模式。 | 1791 1792**返回值:** 1793 1794| 类型 | 说明 | 1795| ------------------- | ----------------------- | 1796| Promise<void> | 无返回结果的Promise对象。 | 1797 1798**错误码:** 1799 1800以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1801 1802| 错误码ID | 错误信息 | 1803| ------- | -------------------------------------------- | 1804| 1300002 | This window state is abnormal. | 1805| 1300003 | This window manager service works abnormally. | 1806 1807**示例:** 1808 1809```js 1810let mode = window.WindowMode.FULLSCREEN; 1811try { 1812 let promise = windowClass.setWindowMode(mode); 1813 promise.then(()=> { 1814 console.info('Succeeded in setting the window mode.'); 1815 }).catch((err)=>{ 1816 console.error('Failed to set the window mode. Cause: ' + JSON.stringify(err)); 1817 }); 1818} catch (exception) { 1819 console.error('Failed to set the window mode. Cause: ' + JSON.stringify(exception)); 1820} 1821``` 1822 1823### getWindowProperties<sup>9+</sup> 1824 1825getWindowProperties(): WindowProperties 1826 1827获取当前窗口的属性,返回WindowProperties。 1828 1829**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1830 1831**返回值:** 1832 1833| 类型 | 说明 | 1834| ------------------------------------- | ------------- | 1835| [WindowProperties](#windowproperties) | 当前窗口属性。 | 1836 1837**错误码:** 1838 1839以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1840 1841| 错误码ID | 错误信息 | 1842| ------- | ------------------------------ | 1843| 1300002 | This window state is abnormal. | 1844 1845**示例:** 1846 1847```js 1848try { 1849 let properties = windowClass.getWindowProperties(); 1850} catch (exception) { 1851 console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(exception)); 1852} 1853``` 1854 1855### getWindowAvoidArea<sup>9+</sup> 1856 1857getWindowAvoidArea(type: AvoidAreaType): AvoidArea 1858 1859获取窗口内容规避的区域;如系统栏区域、刘海屏区域、手势区域、软键盘区域等与窗口内容重叠时,需要窗口内容避让的区域。 1860 1861**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1862 1863**参数:** 1864 1865| 参数名 | 类型 | 必填 | 说明 | 1866| ---- |----------------------------------| -- | ------------------------------------------------------------ | 1867| type | [AvoidAreaType](#avoidareatype7) | 是 | 表示规避区类型。 | 1868 1869**返回值:** 1870 1871| 类型 | 说明 | 1872|--------------------------| ----------------- | 1873| [AvoidArea](#avoidarea7) | 窗口内容规避区域。 | 1874 1875**错误码:** 1876 1877以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1878 1879| 错误码ID | 错误信息 | 1880| ------- | ------------------------------ | 1881| 1300002 | This window state is abnormal. | 1882 1883**示例:** 1884 1885```js 1886let type = window.AvoidAreaType.TYPE_SYSTEM; 1887try { 1888 let avoidArea = windowClass.getWindowAvoidArea(type); 1889} catch (exception) { 1890 console.error('Failed to obtain the area. Cause:' + JSON.stringify(exception)); 1891} 1892``` 1893 1894### setWindowLayoutFullScreen<sup>9+</sup> 1895 1896setWindowLayoutFullScreen(isLayoutFullScreen: boolean, callback: AsyncCallback<void>): void 1897 1898设置窗口的布局是否为全屏显示状态,使用callback异步回调。 1899 1900**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1901 1902**参数:** 1903 1904| 参数名 | 类型 | 必填 | 说明 | 1905| ------------------ | ------------------------- | -- | --------- | 1906| isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态(该全屏状态下状态栏、导航栏仍然显示)。true表示全屏显示;false表示非全屏显示。 | 1907| callback | AsyncCallback<void> | 是 | 回调函数。 | 1908 1909**错误码:** 1910 1911以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1912 1913| 错误码ID | 错误信息 | 1914| ------- | -------------------------------------------- | 1915| 1300002 | This window state is abnormal. | 1916| 1300003 | This window manager service works abnormally. | 1917 1918**示例:** 1919 1920```js 1921let isLayoutFullScreen= true; 1922try { 1923 windowClass.setWindowLayoutFullScreen(isLayoutFullScreen, (err) => { 1924 if (err.code) { 1925 console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err)); 1926 return; 1927 } 1928 console.info('Succeeded in setting the window layout to full-screen mode.'); 1929 }); 1930} catch (exception) { 1931 console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(exception)); 1932} 1933``` 1934 1935### setWindowLayoutFullScreen<sup>9+</sup> 1936 1937setWindowLayoutFullScreen(isLayoutFullScreen: boolean): Promise<void> 1938 1939设置窗口的布局是否为全屏显示状态,使用Promise异步回调。 1940 1941**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1942 1943**参数:** 1944 1945| 参数名 | 类型 | 必填 | 说明 | 1946| ------------------ | ------- | -- | ------------------------------------------------------------------------------------------------ | 1947| isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态(该全屏状态下状态栏、导航栏仍然显示)。true表示全屏显示;false表示非全屏显示。 | 1948 1949**返回值:** 1950 1951| 类型 | 说明 | 1952| ------------------- | ------------------------ | 1953| Promise<void> | 无返回结果的Promise对象。 | 1954 1955**错误码:** 1956 1957以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1958 1959| 错误码ID | 错误信息 | 1960| ------- | -------------------------------------------- | 1961| 1300002 | This window state is abnormal. | 1962| 1300003 | This window manager service works abnormally. | 1963 1964**示例:** 1965 1966```js 1967let isLayoutFullScreen = true; 1968try { 1969 let promise = windowClass.setWindowLayoutFullScreen(isLayoutFullScreen); 1970 promise.then(()=> { 1971 console.info('Succeeded in setting the window layout to full-screen mode.'); 1972 }).catch((err)=>{ 1973 console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err)); 1974 }); 1975} catch (exception) { 1976 console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(exception)); 1977} 1978``` 1979 1980### setWindowSystemBarEnable<sup>9+</sup> 1981 1982setWindowSystemBarEnable(names: Array<'status' | 'navigation'>, callback: AsyncCallback<void>): void 1983 1984设置导航栏、状态栏的可见模式,使用callback异步回调。 1985 1986**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1987 1988**参数:** 1989 1990| 参数名 | 类型 | 必填 | 说明 | 1991| -------- | ---------------------------- | -- | --------- | 1992| names | Array<'status'\|'navigation'> | 是 | 设置状态栏和导航栏是否显示。<br>例如,需全部显示,该参数设置为['status', 'navigation'];不设置,则默认不显示。 | 1993| callback | AsyncCallback<void> | 是 | 回调函数。 | 1994 1995**错误码:** 1996 1997以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 1998 1999| 错误码ID | 错误信息 | 2000| ------- | -------------------------------------------- | 2001| 1300002 | This window state is abnormal. | 2002| 1300003 | This window manager service works abnormally. | 2003 2004**示例:** 2005 2006```js 2007// 此处以不显示导航栏、状态栏为例 2008let names = []; 2009try { 2010 windowClass.setWindowSystemBarEnable(names, (err) => { 2011 if (err.code) { 2012 console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(err)); 2013 return; 2014 } 2015 console.info('Succeeded in setting the system bar to be invisible.'); 2016 }); 2017} catch (exception) { 2018 console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(exception)); 2019} 2020``` 2021 2022### setWindowSystemBarEnable<sup>9+</sup> 2023 2024setWindowSystemBarEnable(names: Array<'status' | 'navigation'>): Promise<void> 2025 2026设置导航栏、状态栏的可见模式,使用Promise异步回调。 2027 2028**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2029 2030**参数:** 2031 2032| 参数名 | 类型 | 必填 | 说明 | 2033| ----- | ---------------------------- | -- | --------------------------------- | 2034| names | Array<'status'\|'navigation'> | 是 | 设置状态栏和导航栏是否显示。<br>例如,需全部显示,该参数设置为['status', 'navigation'];不设置,则默认不显示。 | 2035 2036**返回值:** 2037 2038| 类型 | 说明 | 2039| ------------------- | ------------------------ | 2040| Promise<void> | 无返回结果的Promise对象。 | 2041 2042**错误码:** 2043 2044以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2045 2046| 错误码ID | 错误信息 | 2047| ------- | -------------------------------------------- | 2048| 1300002 | This window state is abnormal. | 2049| 1300003 | This window manager service works abnormally. | 2050 2051**示例:** 2052 2053```js 2054// 此处以不显示导航栏、状态栏为例 2055let names = []; 2056try { 2057 let promise = windowClass.setWindowSystemBarEnable(names); 2058 promise.then(()=> { 2059 console.info('Succeeded in setting the system bar to be invisible.'); 2060 }).catch((err)=>{ 2061 console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(err)); 2062 }); 2063} catch (exception) { 2064 console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(exception)); 2065} 2066``` 2067 2068### setWindowSystemBarProperties<sup>9+</sup> 2069 2070setWindowSystemBarProperties(systemBarProperties: SystemBarProperties, callback: AsyncCallback<void>): void 2071 2072设置窗口内导航栏、状态栏的属性,使用callback异步回调。 2073 2074**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2075 2076**参数:** 2077 2078| 参数名 | 类型 | 必填 | 说明 | 2079| ------------------- | ------------------------------------------- | ---- | ---------------------- | 2080| SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏、状态栏的属性。 | 2081| callback | AsyncCallback<void> | 是 | 回调函数。 | 2082 2083**错误码:** 2084 2085以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2086 2087| 错误码ID | 错误信息 | 2088| ------- | -------------------------------------------- | 2089| 1300002 | This window state is abnormal. | 2090| 1300003 | This window manager service works abnormally. | 2091 2092**示例:** 2093 2094```js 2095let SystemBarProperties = { 2096 statusBarColor: '#ff00ff', 2097 navigationBarColor: '#00ff00', 2098 //以下两个属性从API Version8开始支持 2099 statusBarContentColor:'#ffffff', 2100 navigationBarContentColor:'#00ffff' 2101}; 2102try { 2103 windowClass.setWindowSystemBarProperties(SystemBarProperties, (err) => { 2104 if (err.code) { 2105 console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err)); 2106 return; 2107 } 2108 console.info('Succeeded in setting the system bar properties.'); 2109 }); 2110} catch (exception) { 2111 console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(exception)); 2112} 2113``` 2114 2115### setWindowSystemBarProperties<sup>9+</sup> 2116 2117setWindowSystemBarProperties(systemBarProperties: SystemBarProperties): Promise<void> 2118 2119设置窗口内导航栏、状态栏的属性,使用Promise异步回调。 2120 2121**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2122 2123**参数:** 2124 2125| 参数名 | 类型 | 必填 | 说明 | 2126| ------------------- | ------------------------------------------- | ---- | ---------------------- | 2127| SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏、状态栏的属性。 | 2128 2129**返回值:** 2130 2131| 类型 | 说明 | 2132| ------------------- | ------------------------- | 2133| Promise<void> | 无返回结果的Promise对象。 | 2134 2135**错误码:** 2136 2137以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2138 2139| 错误码ID | 错误信息 | 2140| ------- | -------------------------------------------- | 2141| 1300002 | This window state is abnormal. | 2142| 1300003 | This window manager service works abnormally. | 2143 2144**示例:** 2145 2146```js 2147let SystemBarProperties = { 2148 statusBarColor: '#ff00ff', 2149 navigationBarColor: '#00ff00', 2150 //以下两个属性从API Version8开始支持 2151 statusBarContentColor:'#ffffff', 2152 navigationBarContentColor:'#00ffff' 2153}; 2154try { 2155 let promise = windowClass.setWindowSystemBarProperties(SystemBarProperties); 2156 promise.then(()=> { 2157 console.info('Succeeded in setting the system bar properties.'); 2158 }).catch((err)=>{ 2159 console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err)); 2160 }); 2161} catch (exception) { 2162 console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(exception)); 2163} 2164``` 2165 2166### setPreferredOrientation<sup>9+</sup> 2167 2168setPreferredOrientation(orientation: Orientation, callback: AsyncCallback<void>): void 2169 2170设置窗口的显示方向属性,使用callback异步回调。 2171 2172**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2173 2174**参数:** 2175 2176| 参数名 | 类型 | 必填 | 说明 | 2177| ------------------- | ------------------------------------------- | ---- | ---------------------- | 2178| Orientation | [Orientation](#orientation9) | 是 | 窗口显示方向的属性。 | 2179| callback | AsyncCallback<void> | 是 | 回调函数。 | 2180 2181**错误码:** 2182 2183以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2184 2185| 错误码ID | 错误信息 | 2186| ------- | ------------------------------ | 2187| 1300002 | This window state is abnormal. | 2188 2189**示例:** 2190 2191```js 2192let orientation = window.Orientation.AUTO_ROTATION; 2193try { 2194 windowClass.setPreferredOrientation(orientation, (err) => { 2195 if (err.code) { 2196 console.error('Failed to set window orientation. Cause: ' + JSON.stringify(err)); 2197 return; 2198 } 2199 console.info('Succeeded in setting window orientation.'); 2200 }); 2201} catch (exception) { 2202 console.error('Failed to set window orientation. Cause: ' + JSON.stringify(exception)); 2203} 2204``` 2205 2206### setPreferredOrientation<sup>9+</sup> 2207 2208setPreferredOrientation(orientation: Orientation): Promise<void> 2209 2210设置窗口的显示方向属性,使用Promise异步回调。 2211 2212**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2213 2214**参数:** 2215 2216| 参数名 | 类型 | 必填 | 说明 | 2217| ------------------- | ------------------------------------------- | ---- | ---------------------- | 2218| Orientation | [Orientation](#orientation9) | 是 | 窗口显示方向的属性。 | 2219 2220**返回值:** 2221 2222| 类型 | 说明 | 2223| ------------------- | ------------------------- | 2224| Promise<void> | 无返回结果的Promise对象。 | 2225 2226**错误码:** 2227 2228以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2229 2230| 错误码ID | 错误信息 | 2231| ------- | ------------------------------ | 2232| 1300002 | This window state is abnormal. | 2233 2234**示例:** 2235 2236```js 2237let orientation = window.Orientation.AUTO_ROTATION; 2238try { 2239 let promise = windowClass.setPreferredOrientation(orientation); 2240 promise.then(()=> { 2241 console.info('Succeeded in setting the window orientation.'); 2242 }).catch((err)=>{ 2243 console.error('Failed to set the window orientation. Cause: ' + JSON.stringify(err)); 2244 }); 2245} catch (exception) { 2246 console.error('Failed to set window orientation. Cause: ' + JSON.stringify(exception)); 2247} 2248``` 2249 2250### setUIContent<sup>9+</sup> 2251 2252setUIContent(path: string, callback: AsyncCallback<void>): void 2253 2254为当前窗口加载具体页面内容,使用callback异步回调。 2255 2256**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2257 2258**参数:** 2259 2260| 参数名 | 类型 | 必填 | 说明 | 2261| -------- | ------------------------- | -- | -------------------- | 2262| path | string | 是 | 设置加载页面的路径。 | 2263| callback | AsyncCallback<void> | 是 | 回调函数。 | 2264 2265**错误码:** 2266 2267以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2268 2269| 错误码ID | 错误信息 | 2270| ------- | -------------------------------------------- | 2271| 1300002 | This window state is abnormal. | 2272| 1300003 | This window manager service works abnormally. | 2273 2274**示例:** 2275 2276```js 2277try { 2278 windowClass.setUIContent('pages/page2/page2', (err) => { 2279 if (err.code) { 2280 console.error('Failed to load the content. Cause:' + JSON.stringify(err)); 2281 return; 2282 } 2283 console.info('Succeeded in loading the content.'); 2284 }); 2285} catch (exception) { 2286 console.error('Failed to load the content. Cause:' + JSON.stringify(exception)); 2287} 2288``` 2289 2290### setUIContent<sup>9+</sup> 2291 2292setUIContent(path: string): Promise<void> 2293 2294为当前窗口加载具体页面内容,使用Promise异步回调。 2295 2296**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2297 2298**参数:** 2299 2300| 参数名 | 类型 | 必填 | 说明 | 2301| ---- | ------ | -- | ------------------ | 2302| path | string | 是 | 设置加载页面的路径。 | 2303 2304**返回值:** 2305 2306| 类型 | 说明 | 2307| ------------------- | ------------------------ | 2308| Promise<void> | 无返回结果的Promise对象。 | 2309 2310**错误码:** 2311 2312以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2313 2314| 错误码ID | 错误信息 | 2315| ------- | -------------------------------------------- | 2316| 1300002 | This window state is abnormal. | 2317| 1300003 | This window manager service works abnormally. | 2318 2319**示例:** 2320 2321```js 2322try { 2323 let promise = windowClass.setUIContent('pages/page2/page2'); 2324 promise.then(()=> { 2325 console.info('Succeeded in loading the content.'); 2326 }).catch((err)=>{ 2327 console.error('Failed to load the content. Cause: ' + JSON.stringify(err)); 2328 }); 2329} catch (exception) { 2330 console.error('Failed to load the content. Cause: ' + JSON.stringify(exception)); 2331} 2332``` 2333 2334### loadContent<sup>9+</sup> 2335 2336loadContent(path: string, storage: LocalStorage, callback: AsyncCallback<void>): void 2337 2338为当前窗口加载与LocalStorage相关联的具体页面内容,使用callback异步回调。 2339 2340**模型约束:** 此接口仅可在Stage模型下使用。 2341 2342**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2343 2344**参数:** 2345 2346| 参数名 | 类型 | 必填 | 说明 | 2347| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | 2348| path | string | 是 | 设置加载页面的路径。 | 2349| storage | [LocalStorage](../../quick-start/arkts-localstorage.md) | 是 | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。 | 2350| callback | AsyncCallback<void> | 是 | 回调函数。 | 2351 2352**错误码:** 2353 2354以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2355 2356| 错误码ID | 错误信息 | 2357| ------- | -------------------------------------------- | 2358| 1300002 | This window state is abnormal. | 2359| 1300003 | This window manager service works abnormally. | 2360 2361**示例:** 2362 2363```ts 2364let storage = new LocalStorage(); 2365storage.setOrCreate('storageSimpleProp',121); 2366console.log('onWindowStageCreate'); 2367try { 2368 windowClass.loadContent('pages/page2', storage, (err) => { 2369 if (err.code) { 2370 console.error('Failed to load the content. Cause:' + JSON.stringify(err)); 2371 return; 2372 } 2373 console.info('Succeeded in loading the content.'); 2374 }); 2375} catch (exception) { 2376 console.error('Failed to load the content. Cause:' + JSON.stringify(exception)); 2377} 2378``` 2379 2380### loadContent<sup>9+</sup> 2381 2382loadContent(path: string, storage: LocalStorage): Promise<void> 2383 2384为当前窗口加载与LocalStorage相关联的具体页面内容,使用Promise异步回调。 2385 2386**模型约束:** 此接口仅可在Stage模型下使用。 2387 2388**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2389 2390**参数:** 2391 2392| 参数名 | 类型 | 必填 | 说明 | 2393| ------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | 2394| path | string | 是 | 设置加载页面的路径。 | 2395| storage | [LocalStorage](../../quick-start/arkts-localstorage.md) | 是 | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。 | 2396 2397**返回值:** 2398 2399| 类型 | 说明 | 2400| ------------------- | ------------------------- | 2401| Promise<void> | 无返回结果的Promise对象。 | 2402 2403**错误码:** 2404 2405以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2406 2407| 错误码ID | 错误信息 | 2408| ------- | -------------------------------------------- | 2409| 1300002 | This window state is abnormal. | 2410| 1300003 | This window manager service works abnormally. | 2411 2412**示例:** 2413 2414```ts 2415let storage = new LocalStorage(); 2416storage.setOrCreate('storageSimpleProp',121); 2417console.log('onWindowStageCreate'); 2418try { 2419 let promise = windowClass.loadContent('pages/page2', storage); 2420 promise.then(() => { 2421 console.info('Succeeded in loading the content.'); 2422 }).catch((err) => { 2423 console.error('Failed to load the content. Cause:' + JSON.stringify(err)); 2424 }); 2425} catch (exception) { 2426 console.error('Failed to load the content. Cause:' + JSON.stringify(exception)); 2427} 2428``` 2429 2430### isWindowShowing<sup>9+</sup> 2431 2432isWindowShowing(): boolean 2433 2434判断当前窗口是否已显示。 2435 2436**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2437 2438**返回值:** 2439 2440| 类型 | 说明 | 2441| ------- | ------------------------------------------------------------------ | 2442| boolean | 当前窗口是否已显示。true表示当前窗口已显示,false则表示当前窗口未显示。 | 2443 2444**错误码:** 2445 2446以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2447 2448| 错误码ID | 错误信息 | 2449| ------- | ------------------------------ | 2450| 1300002 | This window state is abnormal. | 2451 2452**示例:** 2453 2454```js 2455try { 2456 let data = windowClass.isWindowShowing(); 2457 console.info('Succeeded in checking whether the window is showing. Data: ' + JSON.stringify(data)); 2458} catch (exception) { 2459 console.error('Failed to check whether the window is showing. Cause: ' + JSON.stringify(exception)); 2460} 2461``` 2462 2463### on('windowSizeChange')<sup>7+</sup> 2464 2465on(type: 'windowSizeChange', callback: Callback<Size>): void 2466 2467开启窗口尺寸变化的监听。 2468 2469**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2470 2471**参数:** 2472 2473| 参数名 | 类型 | 必填 | 说明 | 2474| -------- | ------------------------------ | ---- | -------------------------------------------------------- | 2475| type | string | 是 | 监听事件,固定为'windowSizeChange',即窗口尺寸变化事件。 | 2476| callback | Callback<[Size](#size7)> | 是 | 回调函数。返回当前的窗口尺寸。 | 2477 2478**示例:** 2479 2480```js 2481try { 2482 windowClass.on('windowSizeChange', (data) => { 2483 console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data)); 2484 }); 2485} catch (exception) { 2486 console.error('Failed to enable the listener for window size changes. Cause: ' + JSON.stringify(exception)); 2487} 2488``` 2489 2490### off('windowSizeChange')<sup>7+</sup> 2491 2492off(type: 'windowSizeChange', callback?: Callback<Size>): void 2493 2494关闭窗口尺寸变化的监听。 2495 2496**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2497 2498**参数:** 2499 2500| 参数名 | 类型 | 必填 | 说明 | 2501| -------- | ----------------------------- | ---- | -------------------------------------------------------- | 2502| type | string | 是 | 监听事件,固定为'windowSizeChange',即窗口尺寸变化事件。 | 2503| callback | Callback<[Size](#size7)> | 否 | 回调函数。返回当前的窗口尺寸。 | 2504 2505**示例:** 2506 2507```js 2508try { 2509 windowClass.off('windowSizeChange'); 2510} catch (exception) { 2511 console.error('Failed to disable the listener for window size changes. Cause: ' + JSON.stringify(exception)); 2512} 2513``` 2514 2515### on('avoidAreaChange')<sup>9+</sup> 2516 2517on(type: 'avoidAreaChange', callback: Callback<{type: AvoidAreaType, area: AvoidArea}>): void 2518 2519开启系统规避区变化的监听。 2520 2521**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2522 2523**参数:** 2524 2525| 参数名 | 类型 | 必填 | 说明 | 2526| -------- |------------------------------------------------------------------| ---- |--------------------------------------| 2527| type | string | 是 | 监听事件,固定为'avoidAreaChange',即系统规避区变化事件。 | 2528| callback | Callback<{type: [AvoidAreaType](#avoidareatype7), area: [AvoidArea](#avoidarea7)}> | 是 | 回调函数。返回当前规避区以及规避区类型。| 2529 2530**示例:** 2531 2532```js 2533try { 2534 windowClass.on('avoidAreaChange', (data) => { 2535 console.info('Succeeded in enabling the listener for system avoid area changes. type:' + 2536 JSON.stringify(data.type) + ', area: ' + JSON.stringify(data.area)); 2537 }); 2538} catch (exception) { 2539 console.error('Failed to enable the listener for system avoid area changes. Cause: ' + JSON.stringify(exception)); 2540} 2541``` 2542 2543### off('avoidAreaChange')<sup>9+</sup> 2544 2545off(type: 'avoidAreaChange', callback?: Callback<{type: AvoidAreaType, area: AvoidArea}>): void 2546 2547关闭系统规避区变化的监听。 2548 2549**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2550 2551**参数:** 2552 2553| 参数名 | 类型 | 必填 | 说明 | 2554| -------- |-----------------------------------------------------------------------------|-----|------------------------------------| 2555| type | string | 是 | 监听事件,固定为'avoidAreaChange',即系统规避区变化事件。 | 2556| callback | Callback<{type: [AvoidAreaType](#avoidareatype7), area: [AvoidArea](#avoidarea7)}> | 否 | 回调函数。返回当前规避区以及规避区类型。| 2557 2558**示例:** 2559 2560```js 2561try { 2562 windowClass.off('avoidAreaChange'); 2563} catch (exception) { 2564 console.error('Failed to disable the listener for system avoid area changes. Cause: ' + JSON.stringify(exception)); 2565} 2566``` 2567 2568### on('keyboardHeightChange')<sup>7+</sup> 2569 2570on(type: 'keyboardHeightChange', callback: Callback<number>): void 2571 2572开启键盘高度变化的监听。 2573 2574**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2575 2576**参数:** 2577 2578| 参数名 | 类型 | 必填 | 说明 | 2579| -------- | ------------------- | ---- |-------------------------------------------| 2580| type | string | 是 | 监听事件,固定为'keyboardHeightChange',即键盘高度变化事件。 | 2581| callback | Callback<number> | 是 | 回调函数。返回当前的键盘高度,返回值为整数。 | 2582 2583**示例:** 2584 2585```js 2586try { 2587 windowClass.on('keyboardHeightChange', (data) => { 2588 console.info('Succeeded in enabling the listener for keyboard height changes. Data: ' + JSON.stringify(data)); 2589 }); 2590} catch (exception) { 2591 console.error('Failed to enable the listener for keyboard height changes. Cause: ' + JSON.stringify(exception)); 2592} 2593``` 2594 2595### off('keyboardHeightChange')<sup>7+</sup> 2596 2597off(type: 'keyboardHeightChange', callback?: Callback<number>): void 2598 2599关闭键盘高度变化的监听。 2600 2601**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2602 2603**参数:** 2604 2605| 参数名 | 类型 | 必填 | 说明 | 2606| -------- | ---------------------- | ---- | ------------------------------------------------------------ | 2607| type | string | 是 | 监听事件,固定为'keyboardHeightChange',即键盘高度变化事件。 | 2608| callback | Callback<number> | 否 | 回调函数。返回当前的键盘高度,返回值为整数。 | 2609 2610**示例:** 2611 2612```js 2613try { 2614 windowClass.off('keyboardHeightChange'); 2615} catch (exception) { 2616 console.error('Failed to disable the listener for keyboard height changes. Cause: ' + JSON.stringify(exception)); 2617} 2618``` 2619 2620### on('touchOutside')<sup>9+</sup> 2621 2622on(type: 'touchOutside', callback: Callback<void>): void 2623 2624开启本窗口区域范围外的点击事件的监听。 2625 2626**系统接口:** 此接口为系统接口。 2627 2628**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2629 2630**参数:** 2631 2632| 参数名 | 类型 | 必填 | 说明 | 2633| -------- | ------------------- | ---- | ------------------------------------------------------------ | 2634| type | string | 是 | 监听事件,固定为'touchOutside',即本窗口范围外的点击事件。 | 2635| callback | Callback<void> | 是 | 回调函数。当点击事件发生在本窗口范围之外的回调。 | 2636 2637**示例:** 2638 2639```js 2640try { 2641 windowClass.on('touchOutside', () => { 2642 console.info('touch outside'); 2643 }); 2644} catch (exception) { 2645 console.error('Failed to register callback. Cause: ' + JSON.stringify(exception)); 2646} 2647``` 2648 2649### off('touchOutside')<sup>9+</sup> 2650 2651off(type: 'touchOutside', callback?: Callback<void>): void 2652 2653关闭本窗口区域范围外的点击事件的监听。 2654 2655**系统接口:** 此接口为系统接口。 2656 2657**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2658 2659**参数:** 2660 2661| 参数名 | 类型 | 必填 | 说明 | 2662| -------- | ---------------------- | ---- | ------------------------------------------------------------ | 2663| type | string | 是 | 监听事件,固定为'touchOutside',即本窗口范围外的点击事件。 | 2664| callback | Callback<void> | 否 | 回调函数。当点击事件发生在本窗口范围之外的回调。 | 2665 2666**示例:** 2667 2668```js 2669try { 2670 windowClass.off('touchOutside'); 2671} catch (exception) { 2672 console.error('Failed to unregister callback. Cause: ' + JSON.stringify(exception)); 2673} 2674``` 2675 2676### on('screenshot')<sup>9+</sup> 2677 2678on(type: 'screenshot', callback: Callback<void>): void 2679 2680开启截屏事件的监听。 2681 2682**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2683 2684**参数:** 2685 2686| 参数名 | 类型 | 必填 | 说明 | 2687| -------- | ------------------- | ---- | ------------------------------------------------------------ | 2688| type | string | 是 | 监听事件,固定为'screenshot',即截屏事件。 | 2689| callback | Callback<void> | 是 | 回调函数。发生截屏事件时的回调。 | 2690 2691**示例:** 2692 2693```js 2694try { 2695 windowClass.on('screenshot', () => { 2696 console.info('screenshot happened'); 2697 }); 2698} catch (exception) { 2699 console.error('Failed to register callback. Cause: ' + JSON.stringify(exception)); 2700} 2701``` 2702 2703### off('screenshot')<sup>9+</sup> 2704 2705off(type: 'screenshot', callback?: Callback<void>): void 2706 2707关闭截屏事件的监听。 2708 2709**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2710 2711**参数:** 2712 2713| 参数名 | 类型 | 必填 | 说明 | 2714| -------- | ---------------------- | ---- | ------------------------------------------------------------ | 2715| type | string | 是 | 监听事件,固定为'screenshot',即截屏事件。 | 2716| callback | Callback<void> | 否 | 回调函数。发生截屏事件时的回调。 | 2717 2718**示例:** 2719 2720```js 2721let callback = () => { 2722 console.info('screenshot happened'); 2723}; 2724try { 2725 windowClass.on('screenshot', callback); 2726} catch (exception) { 2727 console.error('Failed to register callback. Cause: ' + JSON.stringify(exception)); 2728} 2729try { 2730 windowClass.off('screenshot', callback); 2731 // 如果通过on开启多个callback进行监听,同时关闭所有监听: 2732 windowClass.off('screenshot'); 2733} catch (exception) { 2734 console.error('Failed to unregister callback. Cause: ' + JSON.stringify(exception)); 2735} 2736``` 2737 2738### bindDialogTarget<sup>9+</sup> 2739 2740bindDialogTarget(token: rpc.RemoteObject, deathCallback: Callback<void>, callback: AsyncCallback<void>): void 2741 2742绑定模态窗口与目标窗口并添加模态窗口销毁监听,使用callback异步回调。 2743 2744**系统接口:** 此接口为系统接口。 2745 2746**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2747 2748**参数:** 2749 2750| 参数名 | 类型 | 必填 | 说明 | 2751| ----------- | ------------------------- | ---- | -------------------- | 2752| token | [rpc.RemoteObject](js-apis-rpc.md#remoteobject) | 是 | 目标窗口token值。 | 2753| deathCallback | Callback<void> | 是 | 模态窗口销毁监听。 | 2754| callback | AsyncCallback<void> | 是 | 回调函数。 | 2755 2756**错误码:** 2757 2758以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2759 2760| 错误码ID | 错误信息 | 2761| ------- | -------------------------------------------- | 2762| 1300002 | This window state is abnormal. | 2763| 1300003 | This window manager service works abnormally. | 2764 2765**示例:** 2766 2767```js 2768import rpc from '@ohos.rpc'; 2769 2770class MyDeathRecipient { 2771 onRemoteDied() { 2772 console.log('server died'); 2773 } 2774} 2775class TestRemoteObject extends rpc.RemoteObject { 2776 constructor(descriptor) { 2777 super(descriptor); 2778 } 2779 addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { 2780 return true; 2781 } 2782 removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { 2783 return true; 2784 } 2785 isObjectDead(): boolean { 2786 return false; 2787 } 2788} 2789 2790let token = new TestRemoteObject('testObject'); 2791let windowClass = null; 2792let config = {name: "dialogWindow", windowType: window.WindowType.TYPE_DIALOG, ctx: this.context}; 2793try { 2794 window.createWindow(config, (err, data) => { 2795 if (err.code) { 2796 console.error('Failed to create the window. Cause: ' + JSON.stringify(err)); 2797 return; 2798 } 2799 windowClass = data; 2800 }); 2801 windowClass.bindDialogTarget(token, () => { 2802 console.info('Dialog Window Need Destroy.'); 2803 }, (err) => { 2804 if (err.code) { 2805 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err)); 2806 return; 2807 } 2808 console.info('Succeeded in binding dialog target.'); 2809 }); 2810} catch (exception) { 2811 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(exception)); 2812} 2813``` 2814 2815### bindDialogTarget<sup>9+</sup> 2816 2817bindDialogTarget(token: rpc.RemoteObject, deathCallback: Callback<void>): Promise<void> 2818 2819绑定模态窗口与目标窗口并添加模态窗口销毁监听,使用Promise异步回调。 2820 2821**系统接口:** 此接口为系统接口。 2822 2823**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2824 2825**参数:** 2826 2827| 参数名 | 类型 | 必填 | 说明 | 2828| ----------- | ------------------------- | ---- | -------------------- | 2829| token | [rpc.RemoteObject](js-apis-rpc.md#remoteobject) | 是 | 目标窗口token值。 | 2830| deathCallback | Callback<void> | 是 | 模态窗口销毁监听。 | 2831 2832**返回值:** 2833 2834| 类型 | 说明 | 2835| ------------------- | ------------------------- | 2836| Promise<void> | 无返回结果的Promise对象。 | 2837 2838**错误码:** 2839 2840以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2841 2842| 错误码ID | 错误信息 | 2843| ------- | -------------------------------------------- | 2844| 1300002 | This window state is abnormal. | 2845| 1300003 | This window manager service works abnormally. | 2846 2847**示例:** 2848 2849```js 2850import rpc from '@ohos.rpc'; 2851 2852class MyDeathRecipient { 2853 onRemoteDied() { 2854 console.log('server died'); 2855 } 2856} 2857class TestRemoteObject extends rpc.RemoteObject { 2858 constructor(descriptor) { 2859 super(descriptor); 2860 } 2861 addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { 2862 return true; 2863 } 2864 removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { 2865 return true; 2866 } 2867 isObjectDead(): boolean { 2868 return false; 2869 } 2870} 2871 2872let token = new TestRemoteObject('testObject'); 2873let windowClass = null; 2874let config = {name: "dialogWindow", windowType: window.WindowType.TYPE_DIALOG, ctx: this.context}; 2875try { 2876 window.createWindow(config, (err, data) => { 2877 if (err.code) { 2878 console.error('Failed to create the window. Cause: ' + JSON.stringify(err)); 2879 return; 2880 } 2881 windowClass = data; 2882 }); 2883 let promise = windowClass.bindDialogTarget(token, () => { 2884 console.info('Dialog Window Need Destroy.'); 2885 }); 2886 promise.then(()=> { 2887 console.info('Succeeded in binding dialog target.'); 2888 }).catch((err)=>{ 2889 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err)); 2890 }); 2891} catch (exception) { 2892 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(exception)); 2893} 2894``` 2895 2896### bindDialogTarget<sup>9+</sup> 2897 2898bindDialogTarget(requestInfo: dialogRequest.RequestInfo, deathCallback: Callback<void>, callback: AsyncCallback<void>): void 2899 2900绑定模态窗口与目标窗口并添加模态窗口销毁监听,使用callback异步回调。 2901 2902**系统接口:** 此接口为系统接口。 2903 2904**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2905 2906**参数:** 2907 2908| 参数名 | 类型 | 必填 | 说明 | 2909| ----------- | ------------------------- | ---- | -------------------- | 2910| requestInfo | [dialogRequest.RequestInfo](js-apis-app-ability-dialogRequest.md#requestinfo) | 是 | 目标窗口RequestInfo值。 | 2911| deathCallback | Callback<void> | 是 | 模态窗口销毁监听。 | 2912| callback | AsyncCallback<void> | 是 | 回调函数。 | 2913 2914**错误码:** 2915 2916以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 2917 2918| 错误码ID | 错误信息 | 2919| ------- | -------------------------------------------- | 2920| 1300002 | This window state is abnormal. | 2921| 1300003 | This window manager service works abnormally. | 2922 2923**示例:** 2924 2925```js 2926import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility'; 2927import rpc from '@ohos.rpc'; 2928import dialogRequest from '@ohos.app.ability.dialogRequest'; 2929import window from '@ohos.window'; 2930 2931export default class ServiceExtAbility extends ServiceExtensionAbility { 2932 onCreate(want) { 2933 console.info('onCreate'); 2934 } 2935 2936 onRequest(want, startId) { 2937 console.info('onRequest'); 2938 let windowClass = null; 2939 let config = {name: "dialogWindow", windowType: window.WindowType.TYPE_DIALOG, ctx: this.context}; 2940 try { 2941 window.createWindow(config, (err, data) => { 2942 if (err.code) { 2943 console.error('Failed to create the window. Cause: ' + JSON.stringify(err)); 2944 return; 2945 } 2946 windowClass = data; 2947 }); 2948 let requestInfo = dialogRequest.getRequestInfo(want) 2949 windowClass.bindDialogTarget(requestInfo, () => { 2950 console.info('Dialog Window Need Destroy.'); 2951 }, (err) => { 2952 if (err.code) { 2953 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err)); 2954 return; 2955 } 2956 console.info('Succeeded in binding dialog target.'); 2957 }); 2958 } catch(err) { 2959 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err)) 2960 } 2961 } 2962 2963 onConnect(want) { 2964 console.info('onConnect'); 2965 } 2966 2967 onDisconnect(want) { 2968 console.info('onDisconnect'); 2969 } 2970 2971 onDestroy() { 2972 console.info('onDestroy'); 2973 } 2974} 2975``` 2976 2977### bindDialogTarget<sup>9+</sup> 2978 2979bindDialogTarget(requestInfo: dialogRequest.RequestInfo, deathCallback: Callback<void>): Promise<void> 2980 2981绑定模态窗口与目标窗口并添加模态窗口销毁监听,使用Promise异步回调。 2982 2983**系统接口:** 此接口为系统接口。 2984 2985**系统能力:** SystemCapability.WindowManager.WindowManager.Core 2986 2987**参数:** 2988 2989| 参数名 | 类型 | 必填 | 说明 | 2990| ----------- | ------------------------- | ---- | -------------------- | 2991| requestInfo | [dialogRequest.RequestInfo](js-apis-app-ability-dialogRequest.md#requestinfo) | 是 | 目标窗口RequestInfo值。 | 2992| deathCallback | Callback<void> | 是 | 模态窗口销毁监听。 | 2993 2994**返回值:** 2995 2996| 类型 | 说明 | 2997| ------------------- | ------------------------- | 2998| Promise<void> | 无返回结果的Promise对象。 | 2999 3000**错误码:** 3001 3002以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3003 3004| 错误码ID | 错误信息 | 3005| ------- | -------------------------------------------- | 3006| 1300002 | This window state is abnormal. | 3007| 1300003 | This window manager service works abnormally. | 3008 3009**示例:** 3010 3011```js 3012import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility'; 3013import rpc from '@ohos.rpc'; 3014import dialogRequest from '@ohos.app.ability.dialogRequest'; 3015import window from '@ohos.window'; 3016 3017export default class ServiceExtAbility extends ServiceExtensionAbility { 3018 onCreate(want) { 3019 console.info('onCreate'); 3020 } 3021 3022 onRequest(want, startId) { 3023 console.info('onRequest'); 3024 let windowClass = null; 3025 let config = {name: "dialogWindow", windowType: window.WindowType.TYPE_DIALOG, ctx: this.context}; 3026 try { 3027 window.createWindow(config, (err, data) => { 3028 if (err.code) { 3029 console.error('Failed to create the window. Cause: ' + JSON.stringify(err)); 3030 return; 3031 } 3032 windowClass = data; 3033 }); 3034 let requestInfo = dialogRequest.getRequestInfo(want) 3035 let promise = windowClass.bindDialogTarget(requestInfo, () => { 3036 console.info('Dialog Window Need Destroy.'); 3037 }); 3038 promise.then(()=> { 3039 console.info('Succeeded in binding dialog target.'); 3040 }).catch((err)=>{ 3041 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err)); 3042 }); 3043 } catch(err) { 3044 console.error('Failed to bind dialog target. Cause:' + JSON.stringify(err)) 3045 } 3046 } 3047 3048 onConnect(want) { 3049 console.info('onConnect'); 3050 } 3051 3052 onDisconnect(want) { 3053 console.info('onDisconnect'); 3054 } 3055 3056 onDestroy() { 3057 console.info('onDestroy'); 3058 } 3059} 3060``` 3061 3062### isWindowSupportWideGamut<sup>9+</sup> 3063 3064isWindowSupportWideGamut(callback: AsyncCallback<boolean>): void 3065 3066判断当前窗口是否支持广色域模式,使用callback异步回调。 3067 3068**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3069 3070**参数:** 3071 3072| 参数名 | 类型 | 必填 | 说明 | 3073| -------- | ---------------------------- | -- | -------------------------------------------------------------------------------- | 3074| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示当前窗口支持广色域模式,返回false表示当前窗口不支持广色域模式。 | 3075 3076**错误码:** 3077 3078以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3079 3080| 错误码ID | 错误信息 | 3081| ------- | ------------------------------ | 3082| 1300002 | This window state is abnormal. | 3083 3084**示例:** 3085 3086```js 3087windowClass.isWindowSupportWideGamut((err, data) => { 3088 if (err.code) { 3089 console.error('Failed to check whether the window support WideGamut. Cause:' + JSON.stringify(err)); 3090 return; 3091 } 3092 console.info('Succeeded in checking whether the window support WideGamut Data: ' + JSON.stringify(data)); 3093}); 3094``` 3095 3096### isWindowSupportWideGamut<sup>9+</sup> 3097 3098isWindowSupportWideGamut(): Promise<boolean> 3099 3100判断当前窗口是否支持广色域模式,使用Promise异步回调。 3101 3102**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3103 3104**返回值:** 3105 3106| 类型 | 说明 | 3107| ---------------------- | ------------------------------------------------------------------------------------ | 3108| Promise<boolean> | Promise对象。返回true表示当前窗口支持广色域模式,返回false表示当前窗口不支持广色域模式。 | 3109 3110**错误码:** 3111 3112以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3113 3114| 错误码ID | 错误信息 | 3115| ------- | ------------------------------ | 3116| 1300002 | This window state is abnormal. | 3117 3118**示例:** 3119 3120```js 3121let promise = windowClass.isWindowSupportWideGamut(); 3122promise.then((data)=> { 3123 console.info('Succeeded in checking whether the window support WideGamut. Data: ' + JSON.stringify(data)); 3124}).catch((err)=>{ 3125 console.error('Failed to check whether the window support WideGamut. Cause: ' + JSON.stringify(err)); 3126}); 3127``` 3128 3129### setWindowColorSpace<sup>9+</sup> 3130 3131setWindowColorSpace(colorSpace:ColorSpace, callback: AsyncCallback<void>): void 3132 3133设置当前窗口为广色域模式或默认色域模式,使用callback异步回调。 3134 3135**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3136 3137**参数:** 3138 3139| 参数名 | 类型 | 必填 | 说明 | 3140| ---------- | ------------------------- | -- | ----------- | 3141| colorSpace | [ColorSpace](#colorspace8) | 是 | 设置色域模式。 | 3142| callback | AsyncCallback<void> | 是 | 回调函数。 | 3143 3144**错误码:** 3145 3146以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3147 3148| 错误码ID | 错误信息 | 3149| ------- | ------------------------------ | 3150| 1300002 | This window state is abnormal. | 3151 3152**示例:** 3153 3154```js 3155try { 3156 windowClass.setWindowColorSpace(window.ColorSpace.WIDE_GAMUT, (err) => { 3157 if (err.code) { 3158 console.error('Failed to set window colorspace. Cause:' + JSON.stringify(err)); 3159 return; 3160 } 3161 console.info('Succeeded in setting window colorspace.'); 3162 }); 3163} catch (exception) { 3164 console.error('Failed to set window colorspace. Cause:' + JSON.stringify(exception)); 3165} 3166``` 3167 3168### setWindowColorSpace<sup>9+</sup> 3169 3170setWindowColorSpace(colorSpace:ColorSpace): Promise<void> 3171 3172设置当前窗口为广色域模式或默认色域模式,使用Promise异步回调。 3173 3174**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3175 3176**参数:** 3177 3178| 参数名 | 类型 | 必填 | 说明 | 3179| ---------- | ------------------------- | -- | ------------- | 3180| colorSpace | [ColorSpace](#colorspace8) | 是 | 设置色域模式。 | 3181 3182**返回值:** 3183 3184| 类型 | 说明 | 3185| ------------------- | ------------------------ | 3186| Promise<void> | 无返回结果的Promise对象。 | 3187 3188**错误码:** 3189 3190以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3191 3192| 错误码ID | 错误信息 | 3193| ------- | ------------------------------ | 3194| 1300002 | This window state is abnormal. | 3195 3196**示例:** 3197 3198```js 3199try { 3200 let promise = windowClass.setWindowColorSpace(window.ColorSpace.WIDE_GAMUT); 3201 promise.then(()=> { 3202 console.info('Succeeded in setting window colorspace.'); 3203 }).catch((err)=>{ 3204 console.error('Failed to set window colorspace. Cause: ' + JSON.stringify(err)); 3205 }); 3206} catch (exception) { 3207 console.error('Failed to set window colorspace. Cause:' + JSON.stringify(exception)); 3208} 3209``` 3210 3211### getWindowColorSpace<sup>9+</sup> 3212 3213getWindowColorSpace(): ColorSpace 3214 3215获取当前窗口色域模式。 3216 3217**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3218 3219**返回值:** 3220 3221| 类型 | 说明 | 3222| ------------------------- | ------------- | 3223| [ColorSpace](#colorspace8) | 当前色域模式。 | 3224 3225**错误码:** 3226 3227以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3228 3229| 错误码ID | 错误信息 | 3230| ------- | ------------------------------ | 3231| 1300002 | This window state is abnormal. | 3232 3233**示例:** 3234 3235```js 3236let colorSpace = windowClass.getWindowColorSpace(); 3237``` 3238 3239### setWindowBackgroundColor<sup>9+</sup> 3240 3241setWindowBackgroundColor(color: string): void 3242 3243设置窗口的背景色。Stage模型下,该接口需要在[loadContent()](#loadcontent9)或[setUIContent()](#setuicontent9)调用生效后使用。 3244 3245**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3246 3247**参数:** 3248 3249| 参数名 | 类型 | 必填 | 说明 | 3250| ----- | ------ | -- | ----------------------------------------------------------------------- | 3251| color | string | 是 | 需要设置的背景色,为十六进制RGB或ARGB颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。 | 3252 3253**错误码:** 3254 3255以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3256 3257| 错误码ID | 错误信息 | 3258| ------- | ------------------------------ | 3259| 1300002 | This window state is abnormal. | 3260 3261**示例:** 3262 3263```js 3264let color = '#00ff33'; 3265try { 3266 windowClass.setWindowBackgroundColor(color); 3267} catch (exception) { 3268 console.error('Failed to set the background color. Cause: ' + JSON.stringify(exception)); 3269} 3270``` 3271 3272### setWindowBrightness<sup>9+</sup> 3273 3274setWindowBrightness(brightness: number, callback: AsyncCallback<void>): void 3275 3276设置屏幕亮度值,使用callback异步回调。 3277 3278当前屏幕亮度规格:窗口设置屏幕亮度生效时,控制中心不可以调整系统屏幕亮度,窗口恢复默认系统亮度之后,控制中心可以调整系统屏幕亮度。 3279 3280**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3281 3282**参数:** 3283 3284| 参数名 | 类型 | 必填 | 说明 | 3285| ---------- | ------------------------- | -- |-------------------------------------------| 3286| brightness | number | 是 | 屏幕亮度值。该参数为浮点数,取值范围为[0.0, 1.0]。其取1.0时表示最亮。 | 3287| callback | AsyncCallback<void> | 是 | 回调函数。 | 3288 3289**错误码:** 3290 3291以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3292 3293| 错误码ID | 错误信息 | 3294| ------- | -------------------------------------------- | 3295| 1300002 | This window state is abnormal. | 3296| 1300003 | This window manager service works abnormally. | 3297 3298**示例:** 3299 3300```js 3301let brightness = 1; 3302try { 3303 windowClass.setWindowBrightness(brightness, (err) => { 3304 if (err.code) { 3305 console.error('Failed to set the brightness. Cause: ' + JSON.stringify(err)); 3306 return; 3307 } 3308 console.info('Succeeded in setting the brightness.'); 3309 }); 3310} catch (exception) { 3311 console.error('Failed to set the brightness. Cause: ' + JSON.stringify(exception)); 3312} 3313``` 3314 3315### setWindowBrightness<sup>9+</sup> 3316 3317setWindowBrightness(brightness: number): Promise<void> 3318 3319设置屏幕亮度值,使用Promise异步回调。 3320 3321当前屏幕亮度规格:窗口设置屏幕亮度生效时,控制中心不可以调整系统屏幕亮度,窗口恢复默认系统亮度之后,控制中心可以调整系统屏幕亮度。 3322 3323**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3324 3325**参数:** 3326 3327| 参数名 | 类型 | 必填 | 说明 | 3328| ---------- | ------ | -- |----------------------------------------| 3329| brightness | number | 是 | 屏幕亮度值。该参数为浮点数,取值范围为[0.0, 1.0]。1.0表示最亮。 | 3330 3331**返回值:** 3332 3333| 类型 | 说明 | 3334| ------------------- | ------------------------ | 3335| Promise<void> | 无返回结果的Promise对象。 | 3336 3337**错误码:** 3338 3339以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3340 3341| 错误码ID | 错误信息 | 3342| ------- | -------------------------------------------- | 3343| 1300002 | This window state is abnormal. | 3344| 1300003 | This window manager service works abnormally. | 3345 3346**示例:** 3347 3348```js 3349let brightness = 1; 3350try { 3351 let promise = windowClass.setWindowBrightness(brightness); 3352 promise.then(()=> { 3353 console.info('Succeeded in setting the brightness.'); 3354 }).catch((err)=>{ 3355 console.error('Failed to set the brightness. Cause: ' + JSON.stringify(err)); 3356 }); 3357} catch (exception) { 3358 console.error('Failed to set the brightness. Cause: ' + JSON.stringify(exception)); 3359} 3360``` 3361 3362### setWindowFocusable<sup>9+</sup> 3363 3364setWindowFocusable(isFocusable: boolean, callback: AsyncCallback<void>): void 3365 3366设置点击时是否支持切换焦点窗口,使用callback异步回调。 3367 3368**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3369 3370**参数:** 3371 3372| 参数名 | 类型 | 必填 | 说明 | 3373| ----------- | ------------------------- | -- | ------------------------------------------------------- | 3374| isFocusable | boolean | 是 | 点击时是否支持切换焦点窗口。true表示支持;false表示不支持。 | 3375| callback | AsyncCallback<void> | 是 | 回调函数。 | 3376 3377**错误码:** 3378 3379以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3380 3381| 错误码ID | 错误信息 | 3382| ------- | -------------------------------------------- | 3383| 1300002 | This window state is abnormal. | 3384| 1300003 | This window manager service works abnormally. | 3385 3386**示例:** 3387 3388```js 3389let isFocusable = true; 3390try { 3391 windowClass.setWindowFocusable(isFocusable, (err) => { 3392 if (err.code) { 3393 console.error('Failed to set the window to be focusable. Cause:' + JSON.stringify(err)); 3394 return; 3395 } 3396 console.info('Succeeded in setting the window to be focusable.'); 3397 }); 3398} catch (exception) { 3399 console.error('Failed to set the window to be focusable. Cause:' + JSON.stringify(exception)); 3400} 3401``` 3402 3403### setWindowFocusable<sup>9+</sup> 3404 3405setWindowFocusable(isFocusable: boolean): Promise<void> 3406 3407设置点击时是否支持切换焦点窗口,使用Promise异步回调。 3408 3409**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3410 3411**参数:** 3412 3413| 参数名 | 类型 | 必填 | 说明 | 3414| ----------- | ------- | -- | -------------------------------------------------------- | 3415| isFocusable | boolean | 是 | 点击时是否支持切换焦点窗口。true表示支持;false表示不支持。 | 3416 3417**返回值:** 3418 3419| 类型 | 说明 | 3420| ------------------- | ------------------------ | 3421| Promise<void> | 无返回结果的Promise对象。 | 3422 3423**错误码:** 3424 3425以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3426 3427| 错误码ID | 错误信息 | 3428| ------- | -------------------------------------------- | 3429| 1300002 | This window state is abnormal. | 3430| 1300003 | This window manager service works abnormally. | 3431 3432**示例:** 3433 3434```js 3435let isFocusable = true; 3436try { 3437 let promise = windowClass.setWindowFocusable(isFocusable); 3438 promise.then(()=> { 3439 console.info('Succeeded in setting the window to be focusable.'); 3440 }).catch((err)=>{ 3441 console.error('Failed to set the window to be focusable. Cause: ' + JSON.stringify(err)); 3442 }); 3443} catch (exception) { 3444 console.error('Failed to set the window to be focusable. Cause:' + JSON.stringify(exception)); 3445} 3446``` 3447 3448### setWindowKeepScreenOn<sup>9+</sup> 3449 3450setWindowKeepScreenOn(isKeepScreenOn: boolean, callback: AsyncCallback<void>): void 3451 3452设置屏幕是否为常亮状态,使用callback异步回调。 3453 3454**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3455 3456**参数:** 3457 3458| 参数名 | 类型 | 必填 | 说明 | 3459| -------------- | ------------------------- | -- | ---------------------------------------------------- | 3460| isKeepScreenOn | boolean | 是 | 设置屏幕是否为常亮状态。true表示常亮;false表示不常亮。 | 3461| callback | AsyncCallback<void> | 是 | 回调函数。 | 3462 3463**错误码:** 3464 3465以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3466 3467| 错误码ID | 错误信息 | 3468| ------- | -------------------------------------------- | 3469| 1300002 | This window state is abnormal. | 3470| 1300003 | This window manager service works abnormally. | 3471 3472**示例:** 3473 3474```js 3475let isKeepScreenOn = true; 3476try { 3477 windowClass.setWindowKeepScreenOn(isKeepScreenOn, (err) => { 3478 if (err.code) { 3479 console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err)); 3480 return; 3481 } 3482 console.info('Succeeded in setting the screen to be always on.'); 3483 }); 3484} catch (exception) { 3485 console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(exception)); 3486} 3487``` 3488 3489### setWindowKeepScreenOn<sup>9+</sup> 3490 3491setWindowKeepScreenOn(isKeepScreenOn: boolean): Promise<void> 3492 3493设置屏幕是否为常亮状态,使用Promise异步回调。 3494 3495**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3496 3497**参数:** 3498 3499| 参数名 | 类型 | 必填 | 说明 | 3500| -------------- | ------- | -- | --------------------------------------------------- | 3501| isKeepScreenOn | boolean | 是 | 设置屏幕是否为常亮状态。true表示常亮;false表示不常亮。 | 3502 3503**返回值:** 3504 3505| 类型 | 说明 | 3506| ------------------- | ------------------------ | 3507| Promise<void> | 无返回结果的Promise对象。 | 3508 3509**错误码:** 3510 3511以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3512 3513| 错误码ID | 错误信息 | 3514| ------- | -------------------------------------------- | 3515| 1300002 | This window state is abnormal. | 3516| 1300003 | This window manager service works abnormally. | 3517 3518**示例:** 3519 3520```js 3521let isKeepScreenOn = true; 3522try { 3523 let promise = windowClass.setWindowKeepScreenOn(isKeepScreenOn); 3524 promise.then(() => { 3525 console.info('Succeeded in setting the screen to be always on.'); 3526 }).catch((err)=>{ 3527 console.info('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err)); 3528 }); 3529} catch (exception) { 3530 console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(exception)); 3531} 3532``` 3533 3534### setWakeUpScreen()<sup>9+</sup> 3535 3536setWakeUpScreen(wakeUp: boolean): void 3537 3538窗口唤醒屏幕。 3539 3540**系统接口:** 此接口为系统接口。 3541 3542**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3543 3544**参数:** 3545 3546| 参数名 | 类型 | 必填 | 说明 | 3547| ---------------- | ------- | ---- | ---------------------------- | 3548| wakeUp | boolean | 是 | 是否设置唤醒屏幕。true表示唤醒;false表示不唤醒。 | 3549 3550**错误码:** 3551 3552以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3553 3554| 错误码ID | 错误信息 | 3555| ------- | -------------------------------------------- | 3556| 1300002 | This window state is abnormal. | 3557| 1300003 | This window manager service works abnormally. | 3558 3559**示例:** 3560 3561```js 3562let wakeUp = true; 3563try { 3564 windowClass.setWakeUpScreen(wakeUp); 3565} catch (exception) { 3566 console.error('Failed to wake up the screen. Cause: ' + JSON.stringify(exception)); 3567} 3568``` 3569 3570### setWindowPrivacyMode<sup>9+</sup> 3571 3572setWindowPrivacyMode(isPrivacyMode: boolean, callback: AsyncCallback<void>): void 3573 3574设置窗口是否为隐私模式,使用callback异步回调。设置为隐私模式的窗口,窗口内容将无法被截屏或录屏。 3575 3576**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3577 3578**需要权限:** ohos.permission.PRIVACY_WINDOW 3579 3580**参数:** 3581 3582| 参数名 | 类型 | 必填 | 说明 | 3583| ------------- | ------------------------- | -- | ------------------------------------------------------ | 3584| isPrivacyMode | boolean | 是 | 窗口是否为隐私模式。true表示模式开启;false表示模式关闭。 | 3585| callback | AsyncCallback<void> | 是 | 回调函数。 | 3586 3587**错误码:** 3588 3589以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3590 3591| 错误码ID | 错误信息 | 3592| ------- | ------------------------------ | 3593| 1300002 | This window state is abnormal. | 3594 3595**示例:** 3596 3597```js 3598let isPrivacyMode = true; 3599try { 3600 windowClass.setWindowPrivacyMode(isPrivacyMode, (err) => { 3601 if (err.code) { 3602 console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err)); 3603 return; 3604 } 3605 console.info('Succeeded in setting the window to privacy mode.'); 3606 }); 3607} catch (exception) { 3608 console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception)); 3609} 3610``` 3611 3612### setWindowPrivacyMode<sup>9+</sup> 3613 3614setWindowPrivacyMode(isPrivacyMode: boolean): Promise<void> 3615 3616设置窗口是否为隐私模式,使用Promise异步回调。设置为隐私模式的窗口,窗口内容将无法被截屏或录屏。 3617 3618**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3619 3620**需要权限:** ohos.permission.PRIVACY_WINDOW 3621 3622**参数:** 3623 3624| 参数名 | 类型 | 必填 | 说明 | 3625| ------------- | ------- | -- | ----------------------------------------------------- | 3626| isPrivacyMode | boolean | 是 | 窗口是否为隐私模式。true表示模式开启;false表示模式关闭。 | 3627 3628**返回值:** 3629 3630| 类型 | 说明 | 3631| ------------------- | ------------------------ | 3632| Promise<void> | 无返回结果的Promise对象。 | 3633 3634**错误码:** 3635 3636以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3637 3638| 错误码ID | 错误信息 | 3639| ------- | ------------------------------ | 3640| 1300002 | This window state is abnormal. | 3641 3642**示例:** 3643 3644```js 3645let isPrivacyMode = true; 3646try { 3647 let promise = windowClass.setWindowPrivacyMode(isPrivacyMode); 3648 promise.then(()=> { 3649 console.info('Succeeded in setting the window to privacy mode.'); 3650 }).catch((err)=>{ 3651 console.error('Failed to set the window to privacy mode. Cause: ' + JSON.stringify(err)); 3652 }); 3653} catch (exception) { 3654 console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception)); 3655} 3656``` 3657 3658### setSnapshotSkip<sup>9+</sup> 3659setSnapshotSkip(isSkip: boolean): void 3660 3661截屏录屏是否忽略当前窗口。 3662 3663**系统接口:** 此接口为系统接口。 3664 3665**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3666 3667**参数:** 3668 3669| 参数名 | 类型 | 必填 | 说明 | 3670| ------------- | ------- | ---- | -------------------- | 3671| isSkip | boolean | 是 | 截屏录屏是否忽略当前窗口,默认为false。<br>true表示忽略当前窗口,false表示不忽略当前窗口。</br> | 3672 3673**错误码:** 3674 3675以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3676 3677| 错误码ID | 错误信息 | 3678| ------- | ------------------------------ | 3679| 1300002 | This window state is abnormal. | 3680 3681```js 3682let isSkip = true; 3683try { 3684 windowClass.setSnapshotSkip(isSkip); 3685} catch (exception) { 3686 console.error('Failed to Skip. Cause: ' + JSON.stringify(exception)); 3687}; 3688``` 3689 3690### setWindowTouchable<sup>9+</sup> 3691 3692setWindowTouchable(isTouchable: boolean, callback: AsyncCallback<void>): void 3693 3694设置窗口是否为可触状态,使用callback异步回调。 3695 3696**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3697 3698**参数:** 3699 3700| 参数名 | 类型 | 必填 | 说明 | 3701| ----------- | ------------------------- | -- | ----------------------------------------------- | 3702| isTouchable | boolean | 是 | 窗口是否为可触状态。true表示可触;false表示不可触。 | 3703| callback | AsyncCallback<void> | 是 | 回调函数。 | 3704 3705**错误码:** 3706 3707以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3708 3709| 错误码ID | 错误信息 | 3710| ------- | -------------------------------------------- | 3711| 1300002 | This window state is abnormal. | 3712| 1300003 | This window manager service works abnormally. | 3713 3714**示例:** 3715 3716```js 3717let isTouchable = true; 3718try { 3719 windowClass.setWindowTouchable(isTouchable, (err) => { 3720 if (err.code) { 3721 console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(err)); 3722 return; 3723 } 3724 console.info('Succeeded in setting the window to be touchable.'); 3725 }); 3726} catch (exception) { 3727 console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(exception)); 3728} 3729``` 3730 3731### setWindowTouchable<sup>9+</sup> 3732 3733setWindowTouchable(isTouchable: boolean): Promise<void> 3734 3735设置窗口是否为可触状态,使用Promise异步回调。 3736 3737**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3738 3739**参数:** 3740 3741| 参数名 | 类型 | 必填 | 说明 | 3742| ----------- | ------- | -- | ----------------------------------------------- | 3743| isTouchable | boolean | 是 | 窗口是否为可触状态。true表示可触;false表示不可触。 | 3744 3745**返回值:** 3746 3747| 类型 | 说明 | 3748| ------------------- | ------------------------- | 3749| Promise<void> | 无返回结果的Promise对象。 | 3750 3751**错误码:** 3752 3753以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3754 3755| 错误码ID | 错误信息 | 3756| ------- | -------------------------------------------- | 3757| 1300002 | This window state is abnormal. | 3758| 1300003 | This window manager service works abnormally. | 3759 3760**示例:** 3761 3762```js 3763let isTouchable = true; 3764try { 3765 let promise = windowClass.setWindowTouchable(isTouchable); 3766 promise.then(()=> { 3767 console.info('Succeeded in setting the window to be touchable.'); 3768 }).catch((err)=>{ 3769 console.error('Failed to set the window to be touchable. Cause: ' + JSON.stringify(err)); 3770 }); 3771} catch (exception) { 3772 console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(exception)); 3773} 3774``` 3775 3776### setForbidSplitMove<sup>9+</sup> 3777 3778setForbidSplitMove(isForbidSplitMove: boolean, callback: AsyncCallback<void>): void 3779 3780设置窗口在分屏模式下是否被禁止移动,使用callback异步回调。 3781 3782**系统接口:** 此接口为系统接口。 3783 3784**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3785 3786**参数:** 3787 3788| 参数名 | 类型 | 必填 | 说明 | 3789| ----------- | ------------------------- | ---- | -------------------- | 3790| isForbidSplitMove | boolean | 是 | 窗口在分屏模式下是否被禁止移动。true表示禁止;false表示不禁止。 | 3791| callback | AsyncCallback<void> | 是 | 回调函数。 | 3792 3793**错误码:** 3794 3795以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3796 3797| 错误码ID | 错误信息 | 3798| ------- | -------------------------------------------- | 3799| 1300002 | This window state is abnormal. | 3800| 1300003 | This window manager service works abnormally. | 3801 3802**示例:** 3803 3804```js 3805let isForbidSplitMove = true; 3806try { 3807 windowClass.setForbidSplitMove(isForbidSplitMove, (err) => { 3808 if (err.code) { 3809 console.error('Failed to forbid window moving in split screen mode. Cause:' + JSON.stringify(err)); 3810 return; 3811 } 3812 console.info('Succeeded in forbidding window moving in split screen mode.'); 3813 }); 3814} catch (exception) { 3815 console.error('Failed to forbid window moving in split screen mode. Cause:' + JSON.stringify(exception)); 3816} 3817``` 3818 3819### setForbidSplitMove<sup>9+</sup> 3820 3821setForbidSplitMove(isForbidSplitMove: boolean): Promise<void> 3822 3823设置窗口在分屏模式下是否被禁止移动,使用Promise异步回调。 3824 3825**系统接口:** 此接口为系统接口。 3826 3827**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3828 3829**参数:** 3830 3831| 参数名 | 类型 | 必填 | 说明 | 3832| ----------- | ------- | ---- | -------------------- | 3833| isForbidSplitMove | boolean | 是 | 窗口在分屏模式下是否被禁止移动。true表示禁止;false表示不禁止。 | 3834 3835**返回值:** 3836 3837| 类型 | 说明 | 3838| ------------------- | ------------------------- | 3839| Promise<void> | 无返回结果的Promise对象。 | 3840 3841**错误码:** 3842 3843以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3844 3845| 错误码ID | 错误信息 | 3846| ------- | -------------------------------------------- | 3847| 1300002 | This window state is abnormal. | 3848| 1300003 | This window manager service works abnormally. | 3849 3850**示例:** 3851 3852```js 3853let isForbidSplitMove = true; 3854try { 3855 let promise = windowClass.setForbidSplitMove(isForbidSplitMove); 3856 promise.then(()=> { 3857 console.info('Succeeded in forbidding window moving in split screen mode.'); 3858 }).catch((err)=>{ 3859 console.error('Failed to forbid window moving in split screen mode. Cause: ' + JSON.stringify(err)); 3860 }); 3861} catch (exception) { 3862 console.error('Failed to forbid window moving in split screen mode. Cause:' + JSON.stringify(exception)); 3863} 3864``` 3865 3866### snapshot<sup>9+</sup> 3867 3868snapshot(callback: AsyncCallback<image.PixelMap>): void 3869 3870获取窗口截图,使用callback异步回调。 3871 3872**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3873 3874**参数:** 3875 3876| 参数名 | 类型 | 必填 | 说明 | 3877| ----------- | ------------------------- | ---- | -------------------- | 3878| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调函数。 | 3879 3880**错误码:** 3881 3882以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3883 3884| 错误码ID | 错误信息 | 3885| ------- | ------------------------------ | 3886| 1300002 | This window state is abnormal. | 3887 3888**示例:** 3889 3890```js 3891windowClass.snapshot((err, pixelMap) => { 3892 if (err.code) { 3893 console.error('Failed to snapshot window. Cause:' + JSON.stringify(err)); 3894 return; 3895 } 3896 console.info('Succeeded in snapshotting window. Pixel bytes number: ' + pixelMap.getPixelBytesNumber()); 3897 pixelMap.release(); // PixelMap使用完后及时释放内存 3898}); 3899``` 3900 3901### snapshot<sup>9+</sup> 3902 3903snapshot(): Promise<image.PixelMap> 3904 3905获取窗口截图,使用Promise异步回调。 3906 3907**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3908 3909**返回值:** 3910 3911| 类型 | 说明 | 3912| ------------------- | ------------------------- | 3913| Promise<[image.PixelMap](js-apis-image.md#pixelmap7)> | Promise对象。返回当前窗口截图。 | 3914 3915**错误码:** 3916 3917以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3918 3919| 错误码ID | 错误信息 | 3920| ------- | ------------------------------ | 3921| 1300002 | This window state is abnormal. | 3922 3923**示例:** 3924 3925```js 3926let promise = windowClass.snapshot(); 3927promise.then((pixelMap)=> { 3928 console.info('Succeeded in snapshotting window. Pixel bytes number: ' + pixelMap.getPixelBytesNumber()); 3929 pixelMap.release(); // PixelMap使用完后及时释放内存 3930}).catch((err)=>{ 3931 console.error('Failed to snapshot window. Cause:' + JSON.stringify(err)); 3932}); 3933``` 3934 3935### opacity<sup>9+</sup> 3936 3937opacity(opacity: number): void 3938 3939设置窗口不透明度。仅支持在[自定义系统窗口的显示与隐藏动画](../../windowmanager/system-window-stage.md#自定义系统窗口的显示与隐藏动画)中使用。 3940 3941**系统接口:** 此接口为系统接口。 3942 3943**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3944 3945**参数:** 3946 3947| 参数名 | 类型 | 必填 | 说明 | 3948| ------- | ------ | ---- |----------------------------------------------------| 3949| opacity | number | 是 | 不透明度。该参数为浮点数,取值范围为[0.0, 1.0]。0.0表示完全透明,1.0表示完全不透明。 | 3950 3951**错误码:** 3952 3953以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3954 3955| 错误码ID | 错误信息 | 3956| ------- | ------------------------------ | 3957| 1300002 | This window state is abnormal. | 3958| 1300004 | Unauthorized operation. | 3959 3960**示例:** 3961 3962```js 3963try { 3964 windowClass.opacity(0.5); 3965} catch (exception) { 3966 console.error('Failed to opacity. Cause: ' + JSON.stringify(exception)); 3967} 3968``` 3969 3970### scale<sup>9+</sup> 3971 3972scale(scaleOptions: ScaleOptions): void 3973 3974设置窗口缩放参数。仅支持在[自定义系统窗口的显示与隐藏动画](../../windowmanager/system-window-stage.md#自定义系统窗口的显示与隐藏动画)中使用。 3975 3976**系统接口:** 此接口为系统接口。 3977 3978**系统能力:** SystemCapability.WindowManager.WindowManager.Core 3979 3980**参数:** 3981 3982| 参数名 | 类型 | 必填 | 说明 | 3983| ------------ | ------------------------------ | ---- | ---------- | 3984| scaleOptions | [ScaleOptions](#scaleoptions9) | 是 | 缩放参数。 | 3985 3986**错误码:** 3987 3988以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 3989 3990| 错误码ID | 错误信息 | 3991| ------- | ------------------------------ | 3992| 1300002 | This window state is abnormal. | 3993| 1300004 | Unauthorized operation. | 3994 3995**示例:** 3996 3997```js 3998let obj : window.ScaleOptions = { 3999 x : 2.0, 4000 y : 1.0, 4001 pivotX : 0.5, 4002 pivotY : 0.5 4003}; 4004try { 4005 windowClass.scale(obj); 4006} catch (exception) { 4007 console.error('Failed to scale. Cause: ' + JSON.stringify(exception)); 4008} 4009``` 4010 4011### rotate<sup>9+</sup> 4012 4013rotate(rotateOptions: RotateOptions): void 4014 4015设置窗口旋转参数。仅支持在[自定义系统窗口的显示与隐藏动画](../../windowmanager/system-window-stage.md#自定义系统窗口的显示与隐藏动画)中使用。 4016 4017**系统接口:** 此接口为系统接口。 4018 4019**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4020 4021**参数:** 4022 4023| 参数名 | 类型 | 必填 | 说明 | 4024| ------------- | -------------------------------- | ---- | ---------- | 4025| rotateOptions | [RotateOptions](#rotateoptions9) | 是 | 旋转参数。 | 4026 4027**错误码:** 4028 4029以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4030 4031| 错误码ID | 错误信息 | 4032| ------- | ------------------------------ | 4033| 1300002 | This window state is abnormal. | 4034| 1300004 | Unauthorized operation. | 4035 4036**示例:** 4037 4038```js 4039let obj : window.RotateOptions = { 4040 x : 1.0, 4041 y : 1.0, 4042 z : 45.0, 4043 pivotX : 0.5, 4044 pivotY : 0.5 4045}; 4046try { 4047 windowClass.rotate(obj); 4048} catch (exception) { 4049 console.error('Failed to rotate. Cause: ' + JSON.stringify(exception)); 4050} 4051``` 4052 4053### translate<sup>9+</sup> 4054 4055translate(translateOptions: TranslateOptions): void 4056 4057设置窗口平移参数。仅支持在[自定义系统窗口的显示与隐藏动画](../../windowmanager/system-window-stage.md#自定义系统窗口的显示与隐藏动画)中使用。 4058 4059**系统接口:** 此接口为系统接口。 4060 4061**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4062 4063**参数:** 4064 4065| 参数名 | 类型 | 必填 | 说明 | 4066| ---------------- | -------------------------------------- | ---- | -------------------- | 4067| translateOptions | [TranslateOptions](#translateoptions9) | 是 | 平移参数,单位为px。 | 4068 4069**错误码:** 4070 4071以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4072 4073| 错误码ID | 错误信息 | 4074| ------- | ------------------------------ | 4075| 1300002 | This window state is abnormal. | 4076| 1300004 | Unauthorized operation. | 4077 4078**示例:** 4079 4080```js 4081let obj : window.TranslateOptions = { 4082 x : 100.0, 4083 y : 0.0, 4084 z : 0.0 4085}; 4086try { 4087 windowClass.translate(obj); 4088} catch (exception) { 4089 console.error('Failed to translate. Cause: ' + JSON.stringify(exception)); 4090} 4091``` 4092 4093### getTransitionController<sup>9+</sup> 4094 4095 getTransitionController(): TransitionController 4096 4097获取窗口属性转换控制器。 4098 4099**系统接口:** 此接口为系统接口。 4100 4101**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4102 4103**返回值:** 4104 4105| 类型 | 说明 | 4106| ---------------------------------------------- | ---------------- | 4107| [TransitionController](#transitioncontroller9) | 属性转换控制器。 | 4108 4109**错误码:** 4110 4111以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4112 4113| 错误码ID | 错误信息 | 4114| ------- | ------------------------------ | 4115| 1300002 | This window state is abnormal. | 4116| 1300004 | Unauthorized operation. | 4117 4118**示例:** 4119 4120```js 4121let controller = windowClass.getTransitionController(); // 获取属性转换控制器 4122controller.animationForHidden = (context : window.TransitionContext) => { 4123 let toWindow = context.toWindow; 4124 animateTo({ 4125 duration: 1000, // 动画时长 4126 tempo: 0.5, // 播放速率 4127 curve: Curve.EaseInOut, // 动画曲线 4128 delay: 0, // 动画延迟 4129 iterations: 1, // 播放次数 4130 playMode: PlayMode.Normal, // 动画模式 4131 onFinish: ()=> { 4132 context.completeTransition(true) 4133 } 4134 }, () => { 4135 let obj : window.TranslateOptions = { 4136 x : 100.0, 4137 y : 0.0, 4138 z : 0.0 4139 }; 4140 toWindow.translate(obj); // 设置动画过程中的属性转换 4141 console.info('toWindow translate end'); 4142 } 4143 ); 4144 console.info('complete transition end'); 4145}; 4146windowClass.hideWithAnimation((err, data) => { 4147 if (err.code) { 4148 console.error('Failed to show the window with animation. Cause: ' + JSON.stringify(err)); 4149 return; 4150 } 4151 console.info('Succeeded in showing the window with animation. Data: ' + JSON.stringify(data)); 4152}); 4153``` 4154 4155### setBlur<sup>9+</sup> 4156 4157setBlur(radius: number): void 4158 4159设置窗口模糊。 4160 4161**系统接口:** 此接口为系统接口。 4162 4163**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4164 4165**参数:** 4166 4167| 参数名 | 类型 | 必填 | 说明 | 4168| ------ | ------ | ---- |--------------------------------------------------| 4169| radius | number | 是 | 表示窗口模糊的半径值。该参数为浮点数,取值范围为[0, +∞),取值为0.0时表示关闭窗口模糊。 | 4170 4171**错误码:** 4172 4173以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4174 4175| 错误码ID | 错误信息 | 4176| ------- | ------------------------------ | 4177| 1300002 | This window state is abnormal. | 4178| 1300004 | Unauthorized operation. | 4179 4180**示例:** 4181 4182```js 4183try { 4184 windowClass.setBlur(4.0); 4185} catch (exception) { 4186 console.error('Failed to set blur. Cause: ' + JSON.stringify(exception)); 4187} 4188``` 4189 4190### setBackdropBlur<sup>9+</sup> 4191 4192setBackdropBlur(radius: number): void 4193 4194设置窗口背景模糊。 4195 4196**系统接口:** 此接口为系统接口。 4197 4198**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4199 4200**参数:** 4201 4202| 参数名 | 类型 | 必填 | 说明 | 4203| ------ | ------ | ---- |-------------------------------------------------------| 4204| radius | number | 是 | 表示窗口背景模糊的半径值。该参数为浮点数,取值范围为[0.0, +∞),取值为0.0表示关闭窗口背景模糊。 | 4205 4206**错误码:** 4207 4208以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4209 4210| 错误码ID | 错误信息 | 4211| ------- | ------------------------------ | 4212| 1300002 | This window state is abnormal. | 4213| 1300004 | Unauthorized operation. | 4214 4215**示例:** 4216 4217```js 4218try { 4219 windowClass.setBackdropBlur(4.0); 4220} catch (exception) { 4221 console.error('Failed to set backdrop blur. Cause: ' + JSON.stringify(exception)); 4222} 4223``` 4224 4225### setBackdropBlurStyle<sup>9+</sup> 4226 4227setBackdropBlurStyle(blurStyle: BlurStyle): void 4228 4229设置窗口背景模糊类型。 4230 4231**系统接口:** 此接口为系统接口。 4232 4233**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4234 4235**参数:** 4236 4237| 参数名 | 类型 | 必填 | 说明 | 4238| --------- | --------- | ---- | ---------------------- | 4239| blurStyle | [BlurStyle](#blurstyle9) | 是 | 表示窗口背景模糊类型。 | 4240 4241**错误码:** 4242 4243以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4244 4245| 错误码ID | 错误信息 | 4246| ------- | ------------------------------ | 4247| 1300002 | This window state is abnormal. | 4248| 1300004 | Unauthorized operation. | 4249 4250**示例:** 4251 4252```js 4253try { 4254 windowClass.setBackdropBlurStyle(window.BlurStyle.THIN); 4255} catch (exception) { 4256 console.error('Failed to set backdrop blur style. Cause: ' + JSON.stringify(exception)); 4257} 4258``` 4259 4260### setShadow<sup>9+</sup> 4261 4262setShadow(radius: number, color?: string, offsetX?: number, offsetY?: number): void 4263 4264设置窗口边缘阴影。 4265 4266**系统接口:** 此接口为系统接口。 4267 4268**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4269 4270**参数:** 4271 4272| 参数名 | 类型 | 必填 | 说明 | 4273| ------- | ------ | ---- |-------------------------------------------------------------| 4274| radius | number | 是 | 表示窗口边缘阴影的模糊半径。该参数为浮点数,取值范围为[0.0, +∞),取值为0.0时表示关闭窗口边缘阴影。 | 4275| color | string | 否 | 表示窗口边缘阴影的颜色,为十六进制RGB或ARGB颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。 | 4276| offsetX | number | 否 | 表示窗口边缘阴影的X轴的偏移量。该参数为浮点数,单位为px。 | 4277| offsetY | number | 否 | 表示窗口边缘阴影的Y轴的偏移量。该参数为浮点数,单位为px。 | 4278 4279**错误码:** 4280 4281以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4282 4283| 错误码ID | 错误信息 | 4284| ------- | ------------------------------ | 4285| 1300002 | This window state is abnormal. | 4286| 1300004 | Unauthorized operation. | 4287 4288**示例:** 4289 4290```js 4291try { 4292 windowClass.setShadow(4.0, '#FF00FF00', 2, 3); 4293} catch (exception) { 4294 console.error('Failed to set shadow. Cause: ' + JSON.stringify(exception)); 4295} 4296``` 4297 4298### setCornerRadius<sup>9+</sup> 4299 4300setCornerRadius(cornerRadius: number): void 4301 4302设置窗口圆角半径。 4303 4304**系统接口:** 此接口为系统接口。 4305 4306**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4307 4308**参数:** 4309 4310| 参数名 | 类型 | 必填 | 说明 | 4311| ----------- | ------- | ---- |----------------------------------------------------| 4312| radius | number | 是 | 表示窗口圆角的半径值。该参数为浮点数,取值范围为[0.0, +∞),取值为0.0时表示没有窗口圆角。 | 4313 4314**错误码:** 4315 4316以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 4317 4318| 错误码ID | 错误信息 | 4319| ------- | ------------------------------ | 4320| 1300002 | This window state is abnormal. | 4321| 1300004 | Unauthorized operation. | 4322 4323**示例:** 4324 4325```js 4326try { 4327 windowClass.setCornerRadius(4.0); 4328} catch (exception) { 4329 console.error('Failed to set corner radius. Cause: ' + JSON.stringify(exception)); 4330} 4331``` 4332 4333### show<sup>(deprecated)</sup> 4334 4335show(callback: AsyncCallback<void>): void 4336 4337显示当前窗口,使用callback异步回调。 4338 4339> **说明:** 4340> 4341> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[showWindow()](#showwindow9)。 4342 4343**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4344 4345**参数:** 4346 4347| 参数名 | 类型 | 必填 | 说明 | 4348| -------- | ------------------------- | ---- | ---------- | 4349| callback | AsyncCallback<void> | 是 | 回调函数。 | 4350 4351**示例:** 4352 4353```js 4354windowClass.show((err) => { 4355 if (err.code) { 4356 console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); 4357 return; 4358 } 4359 console.info('Succeeded in showing the window.'); 4360}); 4361``` 4362 4363### show<sup>(deprecated)</sup> 4364 4365show(): Promise<void> 4366 4367显示当前窗口,使用Promise异步回调。 4368 4369> **说明:** 4370> 4371> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[showWindow()](#showwindow9-1)。 4372 4373**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4374 4375**返回值:** 4376 4377| 类型 | 说明 | 4378| ------------------- | ------------------------- | 4379| Promise<void> | 无返回结果的Promise对象。 | 4380 4381**示例:** 4382 4383```js 4384let promise = windowClass.show(); 4385promise.then(()=> { 4386 console.info('Succeeded in showing the window.'); 4387}).catch((err)=>{ 4388 console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); 4389}); 4390``` 4391 4392### destroy<sup>(deprecated)</sup> 4393 4394destroy(callback: AsyncCallback<void>): void 4395 4396销毁当前窗口,使用callback异步回调。 4397 4398> **说明:** 4399> 4400> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[destroyWindow()](#destroywindow9)。 4401 4402**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4403 4404**参数:** 4405 4406| 参数名 | 类型 | 必填 | 说明 | 4407| -------- | ------------------------- | ---- | ---------- | 4408| callback | AsyncCallback<void> | 是 | 回调函数。 | 4409 4410**示例:** 4411 4412```js 4413windowClass.destroy((err) => { 4414 if (err.code) { 4415 console.error('Failed to destroy the window. Cause:' + JSON.stringify(err)); 4416 return; 4417 } 4418 console.info('Succeeded in destroying the window.'); 4419}); 4420``` 4421 4422### destroy<sup>(deprecated)</sup> 4423 4424destroy(): Promise<void> 4425 4426销毁当前窗口,使用Promise异步回调。 4427 4428> **说明:** 4429> 4430> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[destroyWindow()](#destroywindow9-1)。 4431 4432**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4433 4434**返回值:** 4435 4436| 类型 | 说明 | 4437| ------------------- | ------------------------- | 4438| Promise<void> | 无返回结果的Promise对象。 | 4439 4440**示例:** 4441 4442```js 4443let promise = windowClass.destroy(); 4444promise.then(()=> { 4445 console.info('Succeeded in destroying the window.'); 4446}).catch((err)=>{ 4447 console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err)); 4448}); 4449``` 4450 4451### moveTo<sup>(deprecated)</sup> 4452 4453moveTo(x: number, y: number, callback: AsyncCallback<void>): void 4454 4455移动窗口位置,使用callback异步回调。 4456 4457全屏模式窗口不支持该操作。 4458 4459> **说明:** 4460> 4461> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[moveWindowTo()](#movewindowto9)。 4462 4463**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4464 4465**参数:** 4466 4467| 参数名 | 类型 | 必填 | 说明 | 4468| -------- | ------------------------- | ---- | ------------------------------------------------- | 4469| x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移,单位为px,该参数仅支持整数输入。 | 4470| y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移,单位为px,该参数仅支持整数输入。 | 4471| callback | AsyncCallback<void> | 是 | 回调函数。 | 4472 4473**示例:** 4474 4475```js 4476windowClass.moveTo(300, 300, (err)=>{ 4477 if (err.code) { 4478 console.error('Failed to move the window. Cause:' + JSON.stringify(err)); 4479 return; 4480 } 4481 console.info('Succeeded in moving the window.'); 4482}); 4483``` 4484 4485### moveTo<sup>(deprecated)</sup> 4486 4487moveTo(x: number, y: number): Promise<void> 4488 4489移动窗口位置,使用Promise异步回调。 4490 4491全屏模式窗口不支持该操作。 4492 4493> **说明:** 4494> 4495> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[moveWindowTo()](#movewindowto9-1)。 4496 4497**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4498 4499**参数:** 4500 4501| 参数名 | 类型 | 必填 | 说明 | 4502| ------ | ------ | ---- | ------------------------------------------------- | 4503| x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移,单位为px,该参数仅支持整数输入。 | 4504| y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移,单位为px,该参数仅支持整数输入。 | 4505 4506**返回值:** 4507 4508| 类型 | 说明 | 4509| ------------------- | ------------------------- | 4510| Promise<void> | 无返回结果的Promise对象。 | 4511 4512**示例:** 4513 4514```js 4515let promise = windowClass.moveTo(300, 300); 4516promise.then(()=> { 4517 console.info('Succeeded in moving the window.'); 4518}).catch((err)=>{ 4519 console.error('Failed to move the window. Cause: ' + JSON.stringify(err)); 4520}); 4521``` 4522 4523### resetSize<sup>(deprecated)</sup> 4524 4525resetSize(width: number, height: number, callback: AsyncCallback<void>): void 4526 4527改变当前窗口大小,使用callback异步回调。 4528 4529应用主窗口与子窗口存在大小限制,宽度范围:[320, 2560],高度范围:[240, 2560],单位为vp。 4530 4531系统窗口存在大小限制,宽度范围:[0, 2560],高度范围:[0, 2560],单位为vp。 4532 4533设置的宽度与高度受到此约束限制。 4534 4535全屏模式窗口不支持该操作。 4536 4537> **说明:** 4538> 4539> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[resize()](#resize9)。 4540 4541**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4542 4543**参数:** 4544 4545| 参数名 | 类型 | 必填 | 说明 | 4546| -------- | ------------------------- | ---- | -------------------------- | 4547| width | number | 是 | 目标窗口的宽度,单位为px,该参数仅支持整数输入。 | 4548| height | number | 是 | 目标窗口的高度,单位为px,该参数仅支持整数输入。 | 4549| callback | AsyncCallback<void> | 是 | 回调函数。 | 4550 4551**示例:** 4552 4553```js 4554windowClass.resetSize(500, 1000, (err) => { 4555 if (err.code) { 4556 console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); 4557 return; 4558 } 4559 console.info('Succeeded in changing the window size.'); 4560}); 4561``` 4562 4563### resetSize<sup>(deprecated)</sup> 4564 4565resetSize(width: number, height: number): Promise<void> 4566 4567改变当前窗口大小,使用Promise异步回调。 4568 4569应用主窗口与子窗口存在大小限制,宽度范围:[320, 2560],高度范围:[240, 2560],单位为vp。 4570 4571系统窗口存在大小限制,宽度范围:[0, 2560],高度范围:[0, 2560],单位为vp。 4572 4573设置的宽度与高度受到此约束限制。 4574 4575全屏模式窗口不支持该操作。 4576 4577> **说明:** 4578> 4579> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[resize()](#resize9-1)。 4580 4581**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4582 4583**参数:** 4584 4585| 参数名 | 类型 | 必填 | 说明 | 4586| ------ | ------ | ---- | -------------------------- | 4587| width | number | 是 | 目标窗口的宽度,单位为px,该参数仅支持整数输入。 | 4588| height | number | 是 | 目标窗口的高度,单位为px,该参数仅支持整数输入。 | 4589 4590**返回值:** 4591 4592| 类型 | 说明 | 4593| ------------------- | ------------------------- | 4594| Promise<void> | 无返回结果的Promise对象。 | 4595 4596**示例:** 4597 4598```js 4599let promise = windowClass.resetSize(500, 1000); 4600promise.then(()=> { 4601 console.info('Succeeded in changing the window size.'); 4602}).catch((err)=>{ 4603 console.error('Failed to change the window size. Cause: ' + JSON.stringify(err)); 4604}); 4605``` 4606 4607### setWindowType<sup>(deprecated)</sup> 4608 4609setWindowType(type: WindowType, callback: AsyncCallback<void>): void 4610 4611设置窗口类型,使用callback异步回调。 4612 4613**系统接口:** 此接口为系统接口。 4614 4615> **说明:** 4616> 4617> 从 API version 7开始支持,从API version 9开始废弃。 4618 4619**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4620 4621**参数:** 4622 4623| 参数名 | 类型 | 必填 | 说明 | 4624| -------- | ------------------------- | ---- | ---------- | 4625| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | 4626| callback | AsyncCallback<void> | 是 | 回调函数。 | 4627 4628**示例:** 4629 4630```js 4631let type = window.WindowType.TYPE_APP; 4632windowClass.setWindowType(type, (err) => { 4633 if (err.code) { 4634 console.error('Failed to set the window type. Cause: ' + JSON.stringify(err)); 4635 return; 4636 } 4637 console.info('Succeeded in setting the window type.'); 4638}); 4639``` 4640 4641### setWindowType<sup>(deprecated)</sup> 4642 4643setWindowType(type: WindowType): Promise<void> 4644 4645设置窗口类型,使用Promise异步回调。 4646 4647**系统接口:** 此接口为系统接口。 4648 4649> **说明:** 4650> 4651> 从 API version 7开始支持,从API version 9开始废弃。 4652 4653**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4654 4655**参数:** 4656 4657| 参数名 | 类型 | 必填 | 说明 | 4658| ------ | ------------------------- | ---- | ---------- | 4659| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | 4660 4661**返回值:** 4662 4663| 类型 | 说明 | 4664| ------------------- | ------------------------- | 4665| Promise<void> | 无返回结果的Promise对象。 | 4666 4667**示例:** 4668 4669```js 4670let type = window.WindowType.TYPE_APP; 4671let promise = windowClass.setWindowType(type); 4672promise.then(()=> { 4673 console.info('Succeeded in setting the window type.'); 4674}).catch((err)=>{ 4675 console.error('Failed to set the window type. Cause: ' + JSON.stringify(err)); 4676}); 4677``` 4678 4679### getProperties<sup>(deprecated)</sup> 4680 4681getProperties(callback: AsyncCallback<WindowProperties>): void 4682 4683获取当前窗口的属性,使用callback异步回调,返回WindowProperties。 4684 4685> **说明:** 4686> 4687> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[getWindowProperties()](#getwindowproperties9)。 4688 4689**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4690 4691**参数:** 4692 4693| 参数名 | 类型 | 必填 | 说明 | 4694| -------- | ---------------------------------------------------------- | ---- | ---------------------------- | 4695| callback | AsyncCallback<[WindowProperties](#windowproperties)> | 是 | 回调函数。返回当前窗口属性。 | 4696 4697**示例:** 4698 4699```js 4700windowClass.getProperties((err, data) => { 4701 if (err.code) { 4702 console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err)); 4703 return; 4704 } 4705 console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data)); 4706}); 4707``` 4708 4709### getProperties<sup>(deprecated)</sup> 4710 4711getProperties(): Promise<WindowProperties> 4712 4713获取当前窗口的属性,使用Promise异步回调,返回WindowProperties。 4714 4715> **说明:** 4716> 4717> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[getWindowProperties()](#getwindowproperties9)。 4718 4719**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4720 4721**返回值:** 4722 4723| 类型 | 说明 | 4724| ---------------------------------------------------- | ------------------------------- | 4725| Promise<[WindowProperties](#windowproperties)> | Promise对象。返回当前窗口属性。 | 4726 4727**示例:** 4728 4729```js 4730let promise = windowClass.getProperties(); 4731promise.then((data)=> { 4732 console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data)); 4733}).catch((err)=>{ 4734 console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err)); 4735}); 4736``` 4737 4738### getAvoidArea<sup>(deprecated)</sup> 4739 4740getAvoidArea(type: [AvoidAreaType](#avoidareatype7), callback: AsyncCallback<[AvoidArea](#avoidarea7)>): void 4741 4742获取窗口内容规避的区域;如系统栏区域、刘海屏区域、手势区域、软键盘区域等与窗口内容重叠时,需要窗口内容避让的区域。 4743 4744> **说明:** 4745> 4746> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[getWindowAvoidArea()](#getwindowavoidarea9)。 4747 4748**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4749 4750**参数:** 4751 4752| 参数名 | 类型 | 必填 | 说明 | 4753| -------- |-----------------------------------------------| ---- | ------------------------------------------------------------ | 4754| type | [AvoidAreaType](#avoidareatype7) | 是 | 表示规避区类型。 | 4755| callback | AsyncCallback<[AvoidArea](#avoidarea7)> | 是 | 回调函数。返回窗口内容规避区域。 | 4756 4757**示例:** 4758 4759```js 4760let type = window.AvoidAreaType.TYPE_SYSTEM; 4761windowClass.getAvoidArea(type, (err, data) => { 4762 if (err.code) { 4763 console.error('Failed to obtain the area. Cause:' + JSON.stringify(err)); 4764 return; 4765 } 4766 console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data)); 4767}); 4768``` 4769 4770### getAvoidArea<sup>(deprecated)</sup> 4771 4772getAvoidArea(type: [AvoidAreaType](#avoidareatype7)): Promise<[AvoidArea](#avoidarea7)> 4773 4774获取窗口内容规避的区域;如系统栏区域、刘海屏区域、手势区域、软键盘区域等与窗口内容重叠时,需要窗口内容避让的区域。 4775 4776> **说明:** 4777> 4778> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[getWindowAvoidArea()](#getwindowavoidarea9)。 4779 4780**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4781 4782**参数:** 4783 4784| 参数名 | 类型 | 必填 | 说明 | 4785| ------ |----------------------------------| ---- | ------------------------------------------------------------ | 4786| type | [AvoidAreaType](#avoidareatype7) | 是 | 表示规避区类型。| 4787 4788**返回值:** 4789 4790| 类型 | 说明 | 4791|-----------------------------------------| ----------------------------------- | 4792| Promise<[AvoidArea](#avoidarea7)> | Promise对象。返回窗口内容规避区域。 | 4793 4794**示例:** 4795 4796```js 4797let type = window.AvoidAreaType.TYPE_SYSTEM; 4798let promise = windowClass.getAvoidArea(type); 4799promise.then((data)=> { 4800 console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data)); 4801}).catch((err)=>{ 4802 console.error('Failed to obtain the area. Cause:' + JSON.stringify(err)); 4803}); 4804``` 4805 4806### setFullScreen<sup>(deprecated)</sup> 4807 4808setFullScreen(isFullScreen: boolean, callback: AsyncCallback<void>): void 4809 4810设置是否为全屏状态,使用callback异步回调。 4811 4812> **说明:** 4813> 4814> 从 API version 6开始支持,从API version 9开始废弃,推荐联合使用[setWindowSystemBarEnable()](#setwindowsystembarenable9)和[setWindowLayoutFullScreen()](#setwindowlayoutfullscreen9)实现全屏。 4815 4816**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4817 4818**参数:** 4819 4820| 参数名 | 类型 | 必填 | 说明 | 4821| ------------ | ------------------------- | ---- | ---------------------------------------------- | 4822| isFullScreen | boolean | 是 | 是否设为全屏状态(该全屏状态隐藏状态栏导航栏)。true表示全屏;false表示非全屏。 | 4823| callback | AsyncCallback<void> | 是 | 回调函数。 | 4824 4825**示例:** 4826 4827```js 4828let isFullScreen = true; 4829windowClass.setFullScreen(isFullScreen, (err) => { 4830 if (err.code) { 4831 console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err)); 4832 return; 4833 } 4834 console.info('Succeeded in enabling the full-screen mode.'); 4835}); 4836``` 4837 4838### setFullScreen<sup>(deprecated)</sup> 4839 4840setFullScreen(isFullScreen: boolean): Promise<void> 4841 4842设置是否为全屏状态,使用Promise异步回调。 4843 4844> **说明:** 4845> 4846> 从 API version 6开始支持,从API version 9开始废弃,推荐联合使用[setWindowSystemBarEnable()](#setwindowsystembarenable9-1)和[setWindowLayoutFullScreen()](#setwindowlayoutfullscreen9-1)实现全屏。 4847 4848**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4849 4850**参数:** 4851 4852| 参数名 | 类型 | 必填 | 说明 | 4853| ------------ | ------- | ---- | ---------------------------------------------- | 4854| isFullScreen | boolean | 是 | 是否设为全屏状态(该全屏状态隐藏状态栏导航栏)。true表示全屏;false表示非全屏。 | 4855 4856**返回值:** 4857 4858| 类型 | 说明 | 4859| ------------------- | ------------------------- | 4860| Promise<void> | 无返回结果的Promise对象。 | 4861 4862**示例:** 4863 4864```js 4865let isFullScreen = true; 4866let promise = windowClass.setFullScreen(isFullScreen); 4867promise.then(()=> { 4868 console.info('Succeeded in enabling the full-screen mode.'); 4869}).catch((err)=>{ 4870 console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err)); 4871}); 4872``` 4873 4874### setLayoutFullScreen<sup>(deprecated)</sup> 4875 4876setLayoutFullScreen(isLayoutFullScreen: boolean, callback: AsyncCallback<void>): void 4877 4878设置窗口的布局是否为全屏显示状态,使用callback异步回调。 4879 4880> **说明:** 4881> 4882> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowLayoutFullScreen()](#setwindowlayoutfullscreen9)。 4883 4884**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4885 4886**参数:** 4887 4888| 参数名 | 类型 | 必填 | 说明 | 4889| ------------------ | ------------------------- | ---- | ------------------------------------------------------------ | 4890| isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态(该全屏状态下状态栏、导航栏仍然显示)。true表示全屏;false表示非全屏。 | 4891| callback | AsyncCallback<void> | 是 | 回调函数。 | 4892 4893**示例:** 4894 4895```js 4896let isLayoutFullScreen= true; 4897windowClass.setLayoutFullScreen(isLayoutFullScreen, (err) => { 4898 if (err.code) { 4899 console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err)); 4900 return; 4901 } 4902 console.info('Succeeded in setting the window layout to full-screen mode.'); 4903}); 4904``` 4905 4906### setLayoutFullScreen<sup>(deprecated)</sup> 4907 4908setLayoutFullScreen(isLayoutFullScreen: boolean): Promise<void> 4909 4910设置窗口的布局是否为全屏显示状态,使用Promise异步回调。 4911 4912> **说明:** 4913> 4914> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowLayoutFullScreen()](#setwindowlayoutfullscreen9-1)。 4915 4916**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4917 4918**参数:** 4919 4920| 参数名 | 类型 | 必填 | 说明 | 4921| ------------------ | ------- | ---- | ------------------------------------------------------------ | 4922| isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态(该全屏状态下状态栏、导航栏仍然显示)。true表示全屏;false表示非全屏。 | 4923 4924**返回值:** 4925 4926| 类型 | 说明 | 4927| ------------------- | ------------------------- | 4928| Promise<void> | 无返回结果的Promise对象。 | 4929 4930**示例:** 4931 4932```js 4933let isLayoutFullScreen = true; 4934let promise = windowClass.setLayoutFullScreen(isLayoutFullScreen); 4935promise.then(()=> { 4936 console.info('Succeeded in setting the window layout to full-screen mode.'); 4937}).catch((err)=>{ 4938 console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err)); 4939}); 4940``` 4941 4942### setSystemBarEnable<sup>(deprecated)</sup> 4943 4944setSystemBarEnable(names: Array<'status' | 'navigation'>, callback: AsyncCallback<void>): void 4945 4946设置导航栏、状态栏的可见模式,使用callback异步回调。 4947 4948> **说明:** 4949> 4950> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowSystemBarEnable()](#setwindowsystembarenable9)。 4951 4952**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4953 4954**参数:** 4955 4956| 参数名 | 类型 | 必填 | 说明 | 4957| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 4958| names | Array<'status'\|'navigation'> | 是 | 设置状态栏和导航栏是否显示。<br>例如,需全部显示,该参数设置为['status', 'navigation'];不设置,则默认不显示。 | 4959| callback | AsyncCallback<void> | 是 | 回调函数。 | 4960 4961**示例:** 4962 4963```js 4964// 此处以不显示导航栏、状态栏为例 4965let names = []; 4966windowClass.setSystemBarEnable(names, (err) => { 4967 if (err.code) { 4968 console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(err)); 4969 return; 4970 } 4971 console.info('Succeeded in setting the system bar to be invisible.'); 4972}); 4973``` 4974 4975### setSystemBarEnable<sup>(deprecated)</sup> 4976 4977setSystemBarEnable(names: Array<'status' | 'navigation'>): Promise<void> 4978 4979设置导航栏、状态栏的可见模式,使用Promise异步回调。 4980 4981> **说明:** 4982> 4983> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowSystemBarEnable()](#setwindowsystembarenable9-1)。 4984 4985**系统能力:** SystemCapability.WindowManager.WindowManager.Core 4986 4987**参数:** 4988 4989| 参数名 | 类型 | 必填 | 说明 | 4990| ------ | ---------------------------- | ---- | ------------------------ | 4991| names | Array<'status'\|'navigation'> | 是 | 设置状态栏和导航栏是否显示。<br>例如,需全部显示,该参数设置为['status', 'navigation'];不设置,则默认不显示。 | 4992 4993**返回值:** 4994 4995| 类型 | 说明 | 4996| ------------------- | ------------------------- | 4997| Promise<void> | 无返回结果的Promise对象。 | 4998 4999**示例:** 5000 5001```js 5002// 此处以不显示导航栏、状态栏为例 5003let names = []; 5004let promise = windowClass.setSystemBarEnable(names); 5005promise.then(()=> { 5006 console.info('Succeeded in setting the system bar to be invisible.'); 5007}).catch((err)=>{ 5008 console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(err)); 5009}); 5010``` 5011 5012### setSystemBarProperties<sup>(deprecated)</sup> 5013 5014setSystemBarProperties(systemBarProperties: SystemBarProperties, callback: AsyncCallback<void>): void 5015 5016设置窗口内导航栏、状态栏的属性,使用callback异步回调。 5017 5018> **说明:** 5019> 5020> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowSystemBarProperties()](#setwindowsystembarproperties9)。 5021 5022**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5023 5024**参数:** 5025 5026| 参数名 | 类型 | 必填 | 说明 | 5027| ------------------- | ------------------------------------------- | ---- | ---------------------- | 5028| SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏、状态栏的属性。 | 5029| callback | AsyncCallback<void> | 是 | 回调函数。 | 5030 5031**示例:** 5032 5033```js 5034let SystemBarProperties={ 5035 statusBarColor: '#ff00ff', 5036 navigationBarColor: '#00ff00', 5037 //以下两个属性从API Version8开始支持 5038 statusBarContentColor:'#ffffff', 5039 navigationBarContentColor:'#00ffff' 5040}; 5041windowClass.setSystemBarProperties(SystemBarProperties, (err) => { 5042 if (err.code) { 5043 console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err)); 5044 return; 5045 } 5046 console.info('Succeeded in setting the system bar properties.'); 5047}); 5048``` 5049 5050### setSystemBarProperties<sup>(deprecated)</sup> 5051 5052setSystemBarProperties(systemBarProperties: SystemBarProperties): Promise<void> 5053 5054设置窗口内导航栏、状态栏的属性,使用Promise异步回调。 5055 5056> **说明:** 5057> 5058> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowSystemBarProperties()](#setwindowsystembarproperties9-1)。 5059 5060**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5061 5062**参数:** 5063 5064| 参数名 | 类型 | 必填 | 说明 | 5065| ------------------- | ------------------------------------------- | ---- | ---------------------- | 5066| SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏、状态栏的属性。 | 5067 5068**返回值:** 5069 5070| 类型 | 说明 | 5071| ------------------- | ------------------------- | 5072| Promise<void> | 无返回结果的Promise对象。 | 5073 5074**示例:** 5075 5076```js 5077let SystemBarProperties={ 5078 statusBarColor: '#ff00ff', 5079 navigationBarColor: '#00ff00', 5080 //以下两个属性从API Version8开始支持 5081 statusBarContentColor:'#ffffff', 5082 navigationBarContentColor:'#00ffff' 5083}; 5084let promise = windowClass.setSystemBarProperties(SystemBarProperties); 5085promise.then(()=> { 5086 console.info('Succeeded in setting the system bar properties.'); 5087}).catch((err)=>{ 5088 console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err)); 5089}); 5090``` 5091 5092### loadContent<sup>(deprecated)</sup> 5093 5094loadContent(path: string, callback: AsyncCallback<void>): void 5095 5096为当前窗口加载具体页面内容,使用callback异步回调。 5097 5098> **说明:** 5099> 5100> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setUIContent()](#setuicontent9)。 5101 5102**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5103 5104**参数:** 5105 5106| 参数名 | 类型 | 必填 | 说明 | 5107| -------- | ------------------------- | ---- | -------------------- | 5108| path | string | 是 | 设置加载页面的路径。 | 5109| callback | AsyncCallback<void> | 是 | 回调函数。 | 5110 5111**示例:** 5112 5113```js 5114windowClass.loadContent('pages/page2/page2', (err) => { 5115 if (err.code) { 5116 console.error('Failed to load the content. Cause:' + JSON.stringify(err)); 5117 return; 5118 } 5119 console.info('Succeeded in loading the content.'); 5120}); 5121``` 5122 5123### loadContent<sup>(deprecated)</sup> 5124 5125loadContent(path: string): Promise<void> 5126 5127为当前窗口加载具体页面内容,使用Promise异步回调。 5128 5129> **说明:** 5130> 5131> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setUIContent()](#setuicontent9-1)。 5132 5133**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5134 5135**参数:** 5136 5137| 参数名 | 类型 | 必填 | 说明 | 5138| ------ | ------ | ---- | -------------------- | 5139| path | string | 是 | 设置加载页面的路径。 | 5140 5141**返回值:** 5142 5143| 类型 | 说明 | 5144| ------------------- | ------------------------- | 5145| Promise<void> | 无返回结果的Promise对象。 | 5146 5147**示例:** 5148 5149```js 5150let promise = windowClass.loadContent('pages/page2/page2'); 5151promise.then(()=> { 5152 console.info('Succeeded in loading the content.'); 5153}).catch((err)=>{ 5154 console.error('Failed to load the content. Cause: ' + JSON.stringify(err)); 5155}); 5156``` 5157 5158### isShowing<sup>(deprecated)</sup> 5159 5160isShowing(callback: AsyncCallback<boolean>): void 5161 5162判断当前窗口是否已显示,使用callback异步回调。 5163 5164> **说明:** 5165> 5166> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[isWindowShowing()](#iswindowshowing9)。 5167 5168**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5169 5170**参数:** 5171 5172| 参数名 | 类型 | 必填 | 说明 | 5173| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 5174| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示当前窗口已显示,返回false表示当前窗口未显示。 | 5175 5176**示例:** 5177 5178```js 5179windowClass.isShowing((err, data) => { 5180 if (err.code) { 5181 console.error('Failed to check whether the window is showing. Cause:' + JSON.stringify(err)); 5182 return; 5183 } 5184 console.info('Succeeded in checking whether the window is showing. Data: ' + JSON.stringify(data)); 5185}); 5186``` 5187 5188### isShowing<sup>(deprecated)</sup> 5189 5190isShowing(): Promise<boolean> 5191 5192判断当前窗口是否已显示,使用Promise异步回调。 5193 5194> **说明:** 5195> 5196> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[isWindowShowing()](#iswindowshowing9)。 5197 5198**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5199 5200**返回值:** 5201 5202| 类型 | 说明 | 5203| ---------------------- | ------------------------------------------------------------ | 5204| Promise<boolean> | Promise对象。返回true表示当前窗口已显示,返回false表示当前窗口未显示。 | 5205 5206**示例:** 5207 5208```js 5209let promise = windowClass.isShowing(); 5210promise.then((data)=> { 5211 console.info('Succeeded in checking whether the window is showing. Data: ' + JSON.stringify(data)); 5212}).catch((err)=>{ 5213 console.error('Failed to check whether the window is showing. Cause: ' + JSON.stringify(err)); 5214}); 5215``` 5216 5217### on('systemAvoidAreaChange')<sup>(deprecated)</sup> 5218 5219on(type: 'systemAvoidAreaChange', callback: Callback<AvoidArea>): void 5220 5221开启系统规避区变化的监听。 5222 5223> **说明:** 5224> 5225> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[on('avoidAreaChange')](#onavoidareachange9)。 5226 5227**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5228 5229**参数:** 5230 5231| 参数名 | 类型 | 必填 | 说明 | 5232| -------- |------------------------------------------| ---- | ------------------------------------------------------- | 5233| type | string | 是 | 监听事件,固定为'systemAvoidAreaChange',即系统规避区变化事件。 | 5234| callback | Callback<[AvoidArea](#avoidarea7)> | 是 | 回调函数。返回当前规避区。 | 5235 5236**示例:** 5237 5238```js 5239windowClass.on('systemAvoidAreaChange', (data) => { 5240 console.info('Succeeded in enabling the listener for system avoid area changes. Data: ' + JSON.stringify(data)); 5241}); 5242``` 5243 5244### off('systemAvoidAreaChange')<sup>(deprecated)</sup> 5245 5246off(type: 'systemAvoidAreaChange', callback?: Callback<AvoidArea>): void 5247 5248关闭系统规避区变化的监听。 5249 5250> **说明:** 5251> 5252> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[off('avoidAreaChange')](#offavoidareachange9)。 5253 5254**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5255 5256**参数:** 5257 5258| 参数名 | 类型 | 必填 | 说明 | 5259| -------- |------------------------------------------| ---- | ------------------------------------------------------- | 5260| type | string | 是 | 监听事件,固定为'systemAvoidAreaChange',即系统规避区变化事件。 | 5261| callback | Callback<[AvoidArea](#avoidarea7)> | 否 | 回调函数。返回当前规避区。 | 5262 5263**示例:** 5264 5265```js 5266windowClass.off('systemAvoidAreaChange'); 5267``` 5268 5269### isSupportWideGamut<sup>(deprecated)</sup> 5270 5271isSupportWideGamut(callback: AsyncCallback<boolean>): void 5272 5273判断当前窗口是否支持广色域模式,使用callback异步回调。 5274 5275> **说明:** 5276> 5277> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[isWindowSupportWideGamut()](#iswindowsupportwidegamut9)。 5278 5279**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5280 5281**参数:** 5282 5283| 参数名 | 类型 | 必填 | 说明 | 5284| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 5285| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示当前窗口支持广色域模式,返回false表示当前窗口不支持广色域模式。 | 5286 5287**示例:** 5288 5289```js 5290windowClass.isSupportWideGamut((err, data) => { 5291 if (err.code) { 5292 console.error('Failed to check whether the window support WideGamut. Cause:' + JSON.stringify(err)); 5293 return; 5294 } 5295 console.info('Succeeded in checking whether the window support WideGamut Data: ' + JSON.stringify(data)); 5296}); 5297``` 5298 5299### isSupportWideGamut<sup>(deprecated)</sup> 5300 5301isSupportWideGamut(): Promise<boolean> 5302 5303判断当前窗口是否支持广色域模式,使用Promise异步回调。 5304 5305> **说明:** 5306> 5307> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[isWindowSupportWideGamut()](#iswindowsupportwidegamut9-1)。 5308 5309**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5310 5311**返回值:** 5312 5313| 类型 | 说明 | 5314| ---------------------- | ------------------------------------------------------------ | 5315| Promise<boolean> | Promise对象。返回true表示当前窗口支持广色域模式,返回false表示当前窗口不支持广色域模式。 | 5316 5317**示例:** 5318 5319```js 5320let promise = windowClass.isSupportWideGamut(); 5321promise.then((data)=> { 5322 console.info('Succeeded in checking whether the window support WideGamut. Data: ' + JSON.stringify(data)); 5323}).catch((err)=>{ 5324 console.error('Failed to check whether the window support WideGamut. Cause: ' + JSON.stringify(err)); 5325}); 5326``` 5327 5328### setColorSpace<sup>(deprecated)</sup> 5329 5330setColorSpace(colorSpace:ColorSpace, callback: AsyncCallback<void>): void 5331 5332设置当前窗口为广色域模式或默认色域模式,使用callback异步回调。 5333 5334> **说明:** 5335> 5336> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[setWindowColorSpace()](#setwindowcolorspace9)。 5337 5338**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5339 5340**参数:** 5341 5342| 参数名 | 类型 | 必填 | 说明 | 5343| ---------- | ------------------------- | ---- | ------------ | 5344| colorSpace | [ColorSpace](#colorspace8) | 是 | 设置色域模式。 | 5345| callback | AsyncCallback<void> | 是 | 回调函数。 | 5346 5347**示例:** 5348 5349```js 5350windowClass.setColorSpace(window.ColorSpace.WIDE_GAMUT, (err) => { 5351 if (err.code) { 5352 console.error('Failed to set window colorspace. Cause:' + JSON.stringify(err)); 5353 return; 5354 } 5355 console.info('Succeeded in setting window colorspace.'); 5356}); 5357``` 5358 5359### setColorSpace<sup>(deprecated)</sup> 5360 5361setColorSpace(colorSpace:ColorSpace): Promise<void> 5362 5363设置当前窗口为广色域模式或默认色域模式,使用Promise异步回调。 5364 5365> **说明:** 5366> 5367> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[setWindowColorSpace()](#setwindowcolorspace9-1)。 5368 5369**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5370 5371**参数:** 5372 5373| 参数名 | 类型 | 必填 | 说明 | 5374| ---------- | ------------------------- | ---- | -------------- | 5375| colorSpace | [ColorSpace](#colorspace8) | 是 | 设置色域模式。 | 5376 5377**返回值:** 5378 5379| 类型 | 说明 | 5380| ------------------- | ------------------------- | 5381| Promise<void> | 无返回结果的Promise对象。 | 5382 5383**示例:** 5384 5385```js 5386let promise = windowClass.setColorSpace(window.ColorSpace.WIDE_GAMUT); 5387promise.then(()=> { 5388 console.info('Succeeded in setting window colorspace.'); 5389}).catch((err)=>{ 5390 console.error('Failed to set window colorspace. Cause: ' + JSON.stringify(err)); 5391}); 5392``` 5393 5394### getColorSpace<sup>(deprecated)</sup> 5395 5396getColorSpace(callback: AsyncCallback<ColorSpace>): void 5397 5398获取当前窗口色域模式,使用callback异步回调。 5399 5400> **说明:** 5401> 5402> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[getWindowColorSpace()](#getwindowcolorspace9)。 5403 5404**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5405 5406**参数:** 5407 5408| 参数名 | 类型 | 必填 | 说明 | 5409| -------- | ---------------------------------------------- | ---- | ---------------------------------------------------------- | 5410| callback | AsyncCallback<[ColorSpace](#colorspace8)> | 是 | 回调函数。当获取成功,err为undefined,data为当前色域模式。 | 5411 5412**示例:** 5413 5414```js 5415windowClass.getColorSpace((err, data) => { 5416 if (err.code) { 5417 console.error('Failed to get window colorspace. Cause:' + JSON.stringify(err)); 5418 return; 5419 } 5420 console.info('Succeeded in getting window colorspace. Cause:' + JSON.stringify(data)); 5421}); 5422``` 5423 5424### getColorSpace<sup>(deprecated)</sup> 5425 5426getColorSpace(): Promise<ColorSpace> 5427 5428获取当前窗口色域模式,使用Promise异步回调。 5429 5430> **说明:** 5431> 5432> 从 API version 8开始支持,从API version 9开始废弃,推荐使用[getWindowColorSpace()](#getwindowcolorspace9)。 5433 5434**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5435 5436**返回值:** 5437 5438| 类型 | 说明 | 5439| ---------------------------------------- | ------------------------------- | 5440| Promise<[ColorSpace](#colorspace8)> | Promise对象。返回当前色域模式。 | 5441 5442**示例:** 5443 5444```js 5445let promise = windowClass.getColorSpace(); 5446promise.then((data)=> { 5447 console.info('Succeeded in getting window color space. Cause:' + JSON.stringify(data)); 5448}).catch((err)=>{ 5449 console.error('Failed to get window colorspace. Cause: ' + JSON.stringify(err)); 5450}); 5451``` 5452 5453### setBackgroundColor<sup>(deprecated)</sup> 5454 5455setBackgroundColor(color: string, callback: AsyncCallback<void>): void 5456 5457设置窗口的背景色,使用callback异步回调。Stage模型下,该接口需要在[loadContent()](#loadcontent9)或[setUIContent()](#setuicontent9)调用生效后使用。 5458 5459> **说明:** 5460> 5461> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowBackgroundColor()](#setwindowbackgroundcolor9)。 5462 5463**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5464 5465**参数:** 5466 5467| 参数名 | 类型 | 必填 | 说明 | 5468| -------- | ------------------------- | ---- | ------------------------------------------------------------ | 5469| color | string | 是 | 需要设置的背景色,为十六进制RGB或ARGB颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。 | 5470| callback | AsyncCallback<void> | 是 | 回调函数。 | 5471 5472**示例:** 5473 5474```js 5475let color = '#00ff33'; 5476windowClass.setBackgroundColor(color, (err) => { 5477 if (err.code) { 5478 console.error('Failed to set the background color. Cause: ' + JSON.stringify(err)); 5479 return; 5480 } 5481 console.info('Succeeded in setting the background color.'); 5482}); 5483``` 5484 5485### setBackgroundColor<sup>(deprecated)</sup> 5486 5487setBackgroundColor(color: string): Promise<void> 5488 5489设置窗口的背景色,使用Promise异步回调。Stage模型下,该接口需要在[loadContent()](#loadcontent9)或[setUIContent()](#setuicontent9)调用生效后使用。 5490 5491> **说明:** 5492> 5493> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowBackgroundColor()](#setwindowbackgroundcolor9)。 5494 5495**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5496 5497**参数:** 5498 5499| 参数名 | 类型 | 必填 | 说明 | 5500| ------ | ------ | ---- | ------------------------------------------------------------ | 5501| color | string | 是 | 需要设置的背景色,为十六进制RGB或ARGB颜色,不区分大小写,例如`#00FF00`或`#FF00FF00`。 | 5502 5503**返回值:** 5504 5505| 类型 | 说明 | 5506| ------------------- | ------------------------- | 5507| Promise<void> | 无返回结果的Promise对象。 | 5508 5509**示例:** 5510 5511```js 5512let color = '#00ff33'; 5513let promise = windowClass.setBackgroundColor(color); 5514promise.then(()=> { 5515 console.info('Succeeded in setting the background color.'); 5516}).catch((err)=>{ 5517 console.error('Failed to set the background color. Cause: ' + JSON.stringify(err)); 5518}); 5519``` 5520 5521### setBrightness<sup>(deprecated)</sup> 5522 5523setBrightness(brightness: number, callback: AsyncCallback<void>): void 5524 5525设置屏幕亮度值,使用callback异步回调。 5526 5527当前屏幕亮度规格:窗口设置屏幕亮度生效时,控制中心不可以调整系统屏幕亮度,窗口恢复默认系统亮度之后,控制中心可以调整系统屏幕亮度。 5528 5529> **说明:** 5530> 5531> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowBrightness()](#setwindowbrightness9)。 5532 5533**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5534 5535**参数:** 5536 5537| 参数名 | 类型 | 必填 | 说明 | 5538| ---------- | ------------------------- | ---- |---------------------------------------| 5539| brightness | number | 是 | 屏幕亮度值。该参数为浮点数,取值范围为[0.0, 1.0]。,1表示最亮。 | 5540| callback | AsyncCallback<void> | 是 | 回调函数。 | 5541 5542**示例:** 5543 5544```js 5545let brightness = 1; 5546windowClass.setBrightness(brightness, (err) => { 5547 if (err.code) { 5548 console.error('Failed to set the brightness. Cause: ' + JSON.stringify(err)); 5549 return; 5550 } 5551 console.info('Succeeded in setting the brightness.'); 5552}); 5553``` 5554 5555### setBrightness<sup>(deprecated)</sup> 5556 5557setBrightness(brightness: number): Promise<void> 5558 5559设置屏幕亮度值,使用Promise异步回调。 5560 5561当前屏幕亮度规格:窗口设置屏幕亮度生效时,控制中心不可以调整系统屏幕亮度,窗口恢复默认系统亮度之后,控制中心可以调整系统屏幕亮度。 5562 5563> **说明:** 5564> 5565> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowBrightness()](#setwindowbrightness9-1)。 5566 5567**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5568 5569**参数:** 5570 5571| 参数名 | 类型 | 必填 | 说明 | 5572| ---------- | ------ | ---- |------------------------------------------| 5573| brightness | number | 是 | 屏幕亮度值。该参数为浮点数。取值范围为[0.0, 1.0],取1.0时表示最亮。 | 5574 5575**返回值:** 5576 5577| 类型 | 说明 | 5578| ------------------- | ------------------------- | 5579| Promise<void> | 无返回结果的Promise对象。 | 5580 5581**示例:** 5582 5583```js 5584let brightness = 1; 5585let promise = windowClass.setBrightness(brightness); 5586promise.then(()=> { 5587 console.info('Succeeded in setting the brightness.'); 5588}).catch((err)=>{ 5589 console.error('Failed to set the brightness. Cause: ' + JSON.stringify(err)); 5590}); 5591``` 5592 5593### setDimBehind<sup>(deprecated)</sup> 5594 5595setDimBehind(dimBehindValue: number, callback: AsyncCallback<void>): void 5596 5597窗口叠加时,设备有子窗口的情况下设置靠后的窗口的暗度值,使用callback异步回调。 5598 5599> **说明:** 5600> 5601> 该接口不支持使用。从 API version 7开始支持,从API version 9开始废弃。 5602 5603**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5604 5605**参数:** 5606 5607| 参数名 | 类型 | 必填 | 说明 | 5608| -------------- | ------------------------- | ---- |----------------------------------------| 5609| dimBehindValue | number | 是 | 表示靠后的窗口的暗度值,取值范围为[0.0, 1.0],取1.0时表示最暗。 | 5610| callback | AsyncCallback<void> | 是 | 回调函数。 | 5611 5612**示例:** 5613 5614```js 5615windowClass.setDimBehind(0.5, (err) => { 5616 if (err.code) { 5617 console.error('Failed to set the dimness. Cause: ' + JSON.stringify(err)); 5618 return; 5619 } 5620 console.info('Succeeded in setting the dimness.'); 5621}); 5622``` 5623 5624### setDimBehind<sup>(deprecated)</sup> 5625 5626setDimBehind(dimBehindValue: number): Promise<void> 5627 5628窗口叠加时,设备有子窗口的情况下设置靠后的窗口的暗度值,使用Promise异步回调。 5629 5630> **说明:** 5631> 5632> 该接口不支持使用。从 API version 7开始支持,从API version 9开始废弃。 5633 5634**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5635 5636**参数:** 5637 5638| 参数名 | 类型 | 必填 | 说明 | 5639| -------------- | ------ | ---- | -------------------------------------------------- | 5640| dimBehindValue | number | 是 | 表示靠后的窗口的暗度值,取值范围为0-1,1表示最暗。 | 5641 5642**返回值:** 5643 5644| 类型 | 说明 | 5645| ------------------- | ------------------------- | 5646| Promise<void> | 无返回结果的Promise对象。 | 5647 5648**示例:** 5649 5650```js 5651let promise = windowClass.setDimBehind(0.5); 5652promise.then(()=> { 5653 console.info('Succeeded in setting the dimness.'); 5654}).catch((err)=>{ 5655 console.error('Failed to set the dimness. Cause: ' + JSON.stringify(err)); 5656}); 5657``` 5658 5659### setFocusable<sup>(deprecated)</sup> 5660 5661setFocusable(isFocusable: boolean, callback: AsyncCallback<void>): void 5662 5663设置点击时是否支持切换焦点窗口,使用callback异步回调。 5664 5665> **说明:** 5666> 5667> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowFocusable()](#setwindowfocusable9)。 5668 5669**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5670 5671**参数:** 5672 5673| 参数名 | 类型 | 必填 | 说明 | 5674| ----------- | ------------------------- | ---- | ---------------------------- | 5675| isFocusable | boolean | 是 | 点击时是否支持切换焦点窗口。true表示支持;false表示不支持。 | 5676| callback | AsyncCallback<void> | 是 | 回调函数。 | 5677 5678**示例:** 5679 5680```js 5681let isFocusable= true; 5682windowClass.setFocusable(isFocusable, (err) => { 5683 if (err.code) { 5684 console.error('Failed to set the window to be focusable. Cause:' + JSON.stringify(err)); 5685 return; 5686 } 5687 console.info('Succeeded in setting the window to be focusable.'); 5688}); 5689``` 5690 5691### setFocusable<sup>(deprecated)</sup> 5692 5693setFocusable(isFocusable: boolean): Promise<void> 5694 5695设置点击时是否支持切换焦点窗口,使用Promise异步回调。 5696 5697> **说明:** 5698> 5699> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowFocusable()](#setwindowfocusable9-1)。 5700 5701**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5702 5703**参数:** 5704 5705| 参数名 | 类型 | 必填 | 说明 | 5706| ----------- | ------- | ---- | ---------------------------- | 5707| isFocusable | boolean | 是 | 点击时是否支持切换焦点窗口。true表示支持;false表示不支持。 | 5708 5709**返回值:** 5710 5711| 类型 | 说明 | 5712| ------------------- | ------------------------- | 5713| Promise<void> | 无返回结果的Promise对象。 | 5714 5715**示例:** 5716 5717```js 5718let isFocusable= true; 5719let promise = windowClass.setFocusable(isFocusable); 5720promise.then(()=> { 5721 console.info('Succeeded in setting the window to be focusable.'); 5722}).catch((err)=>{ 5723 console.error('Failed to set the window to be focusable. Cause: ' + JSON.stringify(err)); 5724}); 5725``` 5726 5727### setKeepScreenOn<sup>(deprecated)</sup> 5728 5729setKeepScreenOn(isKeepScreenOn: boolean, callback: AsyncCallback<void>): void 5730 5731设置屏幕是否为常亮状态,使用callback异步回调。 5732 5733> **说明:** 5734> 5735> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowKeepScreenOn()](#setwindowkeepscreenon9)。 5736 5737**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5738 5739**参数:** 5740 5741| 参数名 | 类型 | 必填 | 说明 | 5742| -------------- | ------------------------- | ---- | ------------------------ | 5743| isKeepScreenOn | boolean | 是 | 设置屏幕是否为常亮状态。true表示常亮;false表示不常亮。 | 5744| callback | AsyncCallback<void> | 是 | 回调函数。 | 5745 5746**示例:** 5747 5748```js 5749let isKeepScreenOn = true; 5750windowClass.setKeepScreenOn(isKeepScreenOn, (err) => { 5751 if (err.code) { 5752 console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err)); 5753 return; 5754 } 5755 console.info('Succeeded in setting the screen to be always on.'); 5756}); 5757``` 5758 5759### setKeepScreenOn<sup>(deprecated)</sup> 5760 5761setKeepScreenOn(isKeepScreenOn: boolean): Promise<void> 5762 5763设置屏幕是否为常亮状态,使用Promise异步回调。 5764 5765> **说明:** 5766> 5767> 从 API version 6开始支持,从API version 9开始废弃,推荐使用[setWindowKeepScreenOn()](#setwindowkeepscreenon9-1)。 5768 5769**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5770 5771**参数:** 5772 5773| 参数名 | 类型 | 必填 | 说明 | 5774| -------------- | ------- | ---- | ------------------------ | 5775| isKeepScreenOn | boolean | 是 | 设置屏幕是否为常亮状态。true表示常亮;false表示不常亮。 | 5776 5777**返回值:** 5778 5779| 类型 | 说明 | 5780| ------------------- | ------------------------- | 5781| Promise<void> | 无返回结果的Promise对象。 | 5782 5783**示例:** 5784 5785```js 5786let isKeepScreenOn = true; 5787let promise = windowClass.setKeepScreenOn(isKeepScreenOn); 5788promise.then(() => { 5789 console.info('Succeeded in setting the screen to be always on.'); 5790}).catch((err)=>{ 5791 console.info('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err)); 5792}); 5793``` 5794 5795### setOutsideTouchable<sup>(deprecated)</sup> 5796 5797setOutsideTouchable(touchable: boolean, callback: AsyncCallback<void>): void 5798 5799设置是否允许可点击子窗口之外的区域,使用callback异步回调。 5800 5801> **说明:** 5802> 5803> 该接口不支持使用。从 API version 7开始支持,从API version 9开始废弃。 5804 5805**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5806 5807**参数:** 5808 5809| 参数名 | 类型 | 必填 | 说明 | 5810| --------- | ------------------------- | ---- | ---------------- | 5811| touchable | boolean | 是 | 设置是否可点击。true表示可点击;false表示不可点击。 | 5812| callback | AsyncCallback<void> | 是 | 回调函数。 | 5813 5814**示例:** 5815 5816```js 5817windowClass.setOutsideTouchable(true, (err) => { 5818 if (err.code) { 5819 console.error('Failed to set the area to be touchable. Cause: ' + JSON.stringify(err)); 5820 return; 5821 } 5822 console.info('Succeeded in setting the area to be touchable.'); 5823}); 5824``` 5825 5826### setOutsideTouchable<sup>(deprecated)</sup> 5827 5828setOutsideTouchable(touchable: boolean): Promise<void> 5829 5830设置是否允许可点击子窗口之外的区域,使用Promise异步回调。。 5831 5832> **说明:** 5833> 5834> 该接口不支持使用。从 API version 7开始支持,从API version 9开始废弃。 5835 5836**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5837 5838**参数:** 5839 5840| 参数名 | 类型 | 必填 | 说明 | 5841| --------- | ------- | ---- | ---------------- | 5842| touchable | boolean | 是 | 设置是否可点击。true表示可点击;false表示不可点击。 | 5843 5844**返回值:** 5845 5846| 类型 | 说明 | 5847| ------------------- | ------------------------- | 5848| Promise<void> | 无返回结果的Promise对象。 | 5849 5850**示例:** 5851 5852```js 5853let promise = windowClass.setOutsideTouchable(true); 5854promise.then(()=> { 5855 console.info('Succeeded in setting the area to be touchable.'); 5856}).catch((err)=>{ 5857 console.error('Failed to set the area to be touchable. Cause: ' + JSON.stringify(err)); 5858}); 5859``` 5860 5861### setPrivacyMode<sup>(deprecated)</sup> 5862 5863setPrivacyMode(isPrivacyMode: boolean, callback: AsyncCallback<void>): void 5864 5865设置窗口是否为隐私模式,使用callback异步回调。设置为隐私模式的窗口,窗口内容将无法被截屏或录屏。 5866 5867> **说明:** 5868> 5869> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowPrivacyMode()](#setwindowprivacymode9)。 5870 5871**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5872 5873**参数:** 5874 5875| 参数名 | 类型 | 必填 | 说明 | 5876| ------------- | ------------------------- | ---- | -------------------- | 5877| isPrivacyMode | boolean | 是 | 窗口是否为隐私模式。true表示模式开启;false表示模式关闭。 | 5878| callback | AsyncCallback<void> | 是 | 回调函数。 | 5879 5880**示例:** 5881 5882```js 5883let isPrivacyMode = true; 5884windowClass.setPrivacyMode(isPrivacyMode, (err) => { 5885 if (err.code) { 5886 console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err)); 5887 return; 5888 } 5889 console.info('Succeeded in setting the window to privacy mode.'); 5890}); 5891``` 5892 5893### setPrivacyMode<sup>(deprecated)</sup> 5894 5895setPrivacyMode(isPrivacyMode: boolean): Promise<void> 5896 5897设置窗口是否为隐私模式,使用Promise异步回调。设置为隐私模式的窗口,窗口内容将无法被截屏或录屏。 5898 5899> **说明:** 5900> 5901> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowPrivacyMode()](#setwindowprivacymode9-1)。 5902 5903**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5904 5905**参数:** 5906 5907| 参数名 | 类型 | 必填 | 说明 | 5908| ------------- | ------- | ---- | -------------------- | 5909| isPrivacyMode | boolean | 是 | 窗口是否为隐私模式。true表示模式开启;false表示模式关闭。 | 5910 5911**返回值:** 5912 5913| 类型 | 说明 | 5914| ------------------- | ------------------------- | 5915| Promise<void> | 无返回结果的Promise对象。 | 5916 5917**示例:** 5918 5919```js 5920let isPrivacyMode = true; 5921let promise = windowClass.setPrivacyMode(isPrivacyMode); 5922promise.then(()=> { 5923 console.info('Succeeded in setting the window to privacy mode.'); 5924}).catch((err)=>{ 5925 console.error('Failed to set the window to privacy mode. Cause: ' + JSON.stringify(err)); 5926}); 5927``` 5928 5929### setTouchable<sup>(deprecated)</sup> 5930 5931setTouchable(isTouchable: boolean, callback: AsyncCallback<void>): void 5932 5933设置窗口是否为可触状态,使用callback异步回调。 5934 5935> **说明:** 5936> 5937> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowTouchable()](#setwindowtouchable9)。 5938 5939**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5940 5941**参数:** 5942 5943| 参数名 | 类型 | 必填 | 说明 | 5944| ----------- | ------------------------- | ---- | -------------------- | 5945| isTouchable | boolean | 是 | 窗口是否为可触状态。true表示可触;false表示不可触。 | 5946| callback | AsyncCallback<void> | 是 | 回调函数。 | 5947 5948**示例:** 5949 5950```js 5951let isTouchable = true; 5952windowClass.setTouchable(isTouchable, (err) => { 5953 if (err.code) { 5954 console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(err)); 5955 return; 5956 } 5957 console.info('Succeeded in setting the window to be touchable.'); 5958}); 5959``` 5960 5961### setTouchable<sup>(deprecated)</sup> 5962 5963setTouchable(isTouchable: boolean): Promise<void> 5964 5965设置窗口是否为可触状态,使用Promise异步回调。 5966 5967> **说明:** 5968> 5969> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[setWindowTouchable()](#setwindowtouchable9-1)。 5970 5971**系统能力:** SystemCapability.WindowManager.WindowManager.Core 5972 5973**参数:** 5974 5975| 参数名 | 类型 | 必填 | 说明 | 5976| ----------- | ------- | ---- | -------------------- | 5977| isTouchable | boolean | 是 | 窗口是否为可触状态。true表示可触;false表示不可触。 | 5978 5979**返回值:** 5980 5981| 类型 | 说明 | 5982| ------------------- | ------------------------- | 5983| Promise<void> | 无返回结果的Promise对象。 | 5984 5985**示例:** 5986 5987```js 5988let isTouchable = true; 5989let promise = windowClass.setTouchable(isTouchable); 5990promise.then(()=> { 5991 console.info('Succeeded in setting the window to be touchable.'); 5992}).catch((err)=>{ 5993 console.error('Failed to set the window to be touchable. Cause: ' + JSON.stringify(err)); 5994}); 5995``` 5996 5997## WindowStageEventType<sup>9+</sup> 5998 5999WindowStage生命周期。 6000 6001**模型约束:** 此接口仅可在Stage模型下使用。 6002 6003**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6004 6005| 名称 | 值 | 说明 | 6006| ---------- | ------ | ---------- | 6007| SHOWN | 1 | 切到前台。 | 6008| ACTIVE | 2 | 获焦状态。 | 6009| INACTIVE | 3 | 失焦状态。 | 6010| HIDDEN | 4 | 切到后台。 | 6011 6012## WindowStage<sup>9+</sup> 6013 6014窗口管理器。管理各个基本窗口单元,即[Window](#window)实例。 6015 6016下列API示例中都需在[onWindowStageCreate()](js-apis-app-ability-uiAbility.md#uiabilityonwindowstagecreate)函数中使用WindowStage的实例调用对应方法。 6017 6018### getMainWindow<sup>9+</sup> 6019 6020getMainWindow(callback: AsyncCallback<Window>): void 6021 6022获取该WindowStage实例下的主窗口,使用callback异步回调。 6023 6024**模型约束:** 此接口仅可在Stage模型下使用。 6025 6026**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6027 6028**参数:** 6029 6030| 参数名 | 类型 | 必填 | 说明 | 6031| -------- | -------------------------------------- | ---- | --------------------------------------------- | 6032| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前WindowStage下的主窗口对象。 | 6033 6034**错误码:** 6035 6036以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6037 6038| 错误码ID | 错误信息 | 6039| ------- | ------------------------------ | 6040| 1300002 | This window state is abnormal. | 6041| 1300005 | This window stage is abnormal. | 6042 6043**示例:** 6044 6045```ts 6046import UIAbility from '@ohos.app.ability.UIAbility'; 6047 6048class myAbility extends UIAbility { 6049 onWindowStageCreate(windowStage) { 6050 console.log('onWindowStageCreate'); 6051 let windowClass = null; 6052 windowStage.getMainWindow((err, data) => { 6053 if (err.code) { 6054 console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); 6055 return; 6056 } 6057 windowClass = data; 6058 console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)); 6059 }); 6060 } 6061}; 6062``` 6063 6064### getMainWindow<sup>9+</sup> 6065 6066getMainWindow(): Promise<Window> 6067 6068获取该WindowStage实例下的主窗口,使用Promise异步回调。 6069 6070**模型约束:** 此接口仅可在Stage模型下使用。 6071 6072**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6073 6074**返回值:** 6075 6076| 类型 | 说明 | 6077| -------------------------------- | ------------------------------------------------ | 6078| Promise<[Window](#window)> | Promise对象。返回当前WindowStage下的主窗口对象。 | 6079 6080**错误码:** 6081 6082以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6083 6084| 错误码ID | 错误信息 | 6085| ------- | ------------------------------ | 6086| 1300002 | This window state is abnormal. | 6087| 1300005 | This window stage is abnormal. | 6088 6089**示例:** 6090 6091```ts 6092import UIAbility from '@ohos.app.ability.UIAbility'; 6093 6094class myAbility extends UIAbility { 6095 onWindowStageCreate(windowStage) { 6096 console.log('onWindowStageCreate'); 6097 let windowClass = null; 6098 let promise = windowStage.getMainWindow(); 6099 promise.then((data) => { 6100 windowClass = data; 6101 console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)); 6102 }).catch((err) => { 6103 console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); 6104 }); 6105 } 6106}; 6107``` 6108 6109### getMainWindowSync<sup>9+</sup> 6110 6111getMainWindowSync(): Window 6112 6113获取该WindowStage实例下的主窗口。 6114 6115**模型约束:** 此接口仅可在Stage模型下使用。 6116 6117**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6118 6119**返回值:** 6120 6121| 类型 | 说明 | 6122| ----------------- | --------------------------------- | 6123| [Window](#window) | 返回当前WindowStage下的主窗口对象。 | 6124 6125**错误码:** 6126 6127以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6128 6129| 错误码ID | 错误信息 | 6130| ------- | ------------------------------ | 6131| 1300002 | This window state is abnormal. | 6132| 1300005 | This window stage is abnormal. | 6133 6134**示例:** 6135 6136```ts 6137import UIAbility from '@ohos.app.ability.UIAbility'; 6138 6139class myAbility extends UIAbility { 6140 onWindowStageCreate(windowStage) { 6141 console.log('onWindowStageCreate'); 6142 try { 6143 let windowClass = windowStage.getMainWindowSync(); 6144 } catch (exception) { 6145 console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(exception)); 6146 }; 6147 } 6148}; 6149``` 6150 6151### createSubWindow<sup>9+</sup> 6152 6153createSubWindow(name: string, callback: AsyncCallback<Window>): void 6154 6155创建该WindowStage实例下的子窗口,使用callback异步回调。 6156 6157**模型约束:** 此接口仅可在Stage模型下使用。 6158 6159**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6160 6161**参数:** 6162 6163| 参数名 | 类型 | 必填 | 说明 | 6164| -------- | -------------------------------------- | ---- | --------------------------------------------- | 6165| name | string | 是 | 子窗口的名字。 | 6166| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前WindowStage下的子窗口对象。 | 6167 6168**错误码:** 6169 6170以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6171 6172| 错误码ID | 错误信息 | 6173| ------- | ------------------------------ | 6174| 1300002 | This window state is abnormal. | 6175| 1300005 | This window stage is abnormal. | 6176 6177**示例:** 6178 6179```ts 6180import UIAbility from '@ohos.app.ability.UIAbility'; 6181 6182class myAbility extends UIAbility { 6183 onWindowStageCreate(windowStage) { 6184 console.log('onWindowStageCreate'); 6185 let windowClass = null; 6186 try { 6187 windowStage.createSubWindow('mySubWindow', (err, data) => { 6188 if (err.code) { 6189 console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(err)); 6190 return; 6191 } 6192 windowClass = data; 6193 console.info('Succeeded in creating the subwindow. Data: ' + JSON.stringify(data)); 6194 windowClass.resetSize(500, 1000); 6195 }); 6196 } catch (exception) { 6197 console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(exception)); 6198 }; 6199 } 6200}; 6201``` 6202### createSubWindow<sup>9+</sup> 6203 6204createSubWindow(name: string): Promise<Window> 6205 6206创建该WindowStage实例下的子窗口,使用Promise异步回调。 6207 6208**模型约束:** 此接口仅可在Stage模型下使用。 6209 6210**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6211 6212**参数:** 6213 6214| 参数名 | 类型 | 必填 | 说明 | 6215| ------ | ------ | ---- | -------------- | 6216| name | string | 是 | 子窗口的名字。 | 6217 6218**返回值:** 6219 6220| 类型 | 说明 | 6221| -------------------------------- | ------------------------------------------------ | 6222| Promise<[Window](#window)> | Promise对象。返回当前WindowStage下的子窗口对象。 | 6223 6224**错误码:** 6225 6226以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6227 6228| 错误码ID | 错误信息 | 6229| ------- | ------------------------------ | 6230| 1300002 | This window state is abnormal. | 6231| 1300005 | This window stage is abnormal. | 6232 6233**示例:** 6234 6235```ts 6236import UIAbility from '@ohos.app.ability.UIAbility'; 6237 6238class myAbility extends UIAbility { 6239 onWindowStageCreate(windowStage) { 6240 console.log('onWindowStageCreate'); 6241 let windowClass = null; 6242 try { 6243 let promise = windowStage.createSubWindow('mySubWindow'); 6244 promise.then((data) => { 6245 windowClass = data; 6246 console.info('Succeeded in creating the subwindow. Data: ' + JSON.stringify(data)); 6247 }).catch((err) => { 6248 console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(err)); 6249 }); 6250 } catch (exception) { 6251 console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(exception)); 6252 }; 6253 } 6254}; 6255``` 6256 6257### getSubWindow<sup>9+</sup> 6258 6259getSubWindow(callback: AsyncCallback<Array<Window>>): void 6260 6261获取该WindowStage实例下的所有子窗口,使用callback异步回调。 6262 6263**模型约束:** 此接口仅可在Stage模型下使用。 6264 6265**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6266 6267**参数:** 6268 6269| 参数名 | 类型 | 必填 | 说明 | 6270| -------- | --------------------------------------------------- | ---- | ------------------------------------------------- | 6271| callback | AsyncCallback<Array<[Window](#window)>> | 是 | 回调函数。返回当前WindowStage下的所有子窗口对象。 | 6272 6273**错误码:** 6274 6275以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6276 6277| 错误码ID | 错误信息 | 6278| ------- | ------------------------------ | 6279| 1300005 | This window stage is abnormal. | 6280 6281**示例:** 6282 6283```ts 6284import UIAbility from '@ohos.app.ability.UIAbility'; 6285 6286class myAbility extends UIAbility { 6287 onWindowStageCreate(windowStage) { 6288 console.log('onWindowStageCreate'); 6289 let windowClass = null; 6290 windowStage.getSubWindow((err, data) => { 6291 if (err.code) { 6292 console.error('Failed to obtain the subwindow. Cause: ' + JSON.stringify(err)); 6293 return; 6294 } 6295 windowClass = data; 6296 console.info('Succeeded in obtaining the subwindow. Data: ' + JSON.stringify(data)); 6297 }); 6298 } 6299}; 6300``` 6301### getSubWindow<sup>9+</sup> 6302 6303getSubWindow(): Promise<Array<Window>> 6304 6305获取该WindowStage实例下的所有子窗口,使用Promise异步回调。 6306 6307**模型约束:** 此接口仅可在Stage模型下使用。 6308 6309**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6310 6311**返回值:** 6312 6313| 类型 | 说明 | 6314| --------------------------------------------- | ---------------------------------------------------- | 6315| Promise<Array<[Window](#window)>> | Promise对象。返回当前WindowStage下的所有子窗口对象。 | 6316 6317**错误码:** 6318 6319以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6320 6321| 错误码ID | 错误信息 | 6322| ------- | ------------------------------ | 6323| 1300005 | This window stage is abnormal. | 6324 6325**示例:** 6326 6327```ts 6328import UIAbility from '@ohos.app.ability.UIAbility'; 6329 6330class myAbility extends UIAbility { 6331 onWindowStageCreate(windowStage) { 6332 console.log('onWindowStageCreate'); 6333 let windowClass = null; 6334 let promise = windowStage.getSubWindow(); 6335 promise.then((data) => { 6336 windowClass = data; 6337 console.info('Succeeded in obtaining the subwindow. Data: ' + JSON.stringify(data)); 6338 }).catch((err) => { 6339 console.error('Failed to obtain the subwindow. Cause: ' + JSON.stringify(err)); 6340 }) 6341 } 6342}; 6343``` 6344### loadContent<sup>9+</sup> 6345 6346loadContent(path: string, storage: LocalStorage, callback: AsyncCallback<void>): void 6347 6348为当前WindowStage的主窗口加载与LocalStorage相关联的具体页面内容,使用callback异步回调。 6349 6350**模型约束:** 此接口仅可在Stage模型下使用。 6351 6352**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6353 6354**参数:** 6355 6356| 参数名 | 类型 | 必填 | 说明 | 6357| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | 6358| path | string | 是 | 设置加载页面的路径。 | 6359| storage | [LocalStorage](../../quick-start/arkts-localstorage.md) | 是 | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。 | 6360| callback | AsyncCallback<void> | 是 | 回调函数。 | 6361 6362**错误码:** 6363 6364以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6365 6366| 错误码ID | 错误信息 | 6367| ------- | ------------------------------ | 6368| 1300002 | This window state is abnormal. | 6369| 1300005 | This window stage is abnormal. | 6370 6371**示例:** 6372 6373```ts 6374import UIAbility from '@ohos.app.ability.UIAbility'; 6375 6376class myAbility extends UIAbility { 6377 storage : LocalStorage 6378 onWindowStageCreate(windowStage) { 6379 this.storage = new LocalStorage(); 6380 this.storage.setOrCreate('storageSimpleProp',121); 6381 console.log('onWindowStageCreate'); 6382 try { 6383 windowStage.loadContent('pages/page2',this.storage,(err) => { 6384 if (err.code) { 6385 console.error('Failed to load the content. Cause:' + JSON.stringify(err)); 6386 return; 6387 } 6388 console.info('Succeeded in loading the content.'); 6389 }); 6390 } catch (exception) { 6391 console.error('Failed to load the content. Cause:' + JSON.stringify(exception)); 6392 }; 6393 } 6394}; 6395``` 6396 6397### loadContent<sup>9+</sup> 6398 6399loadContent(path: string, storage?: LocalStorage): Promise<void> 6400 6401为当前WindowStage的主窗口加载与LocalStorage相关联的具体页面内容,使用Promise异步回调。 6402 6403**模型约束:** 此接口仅可在Stage模型下使用。 6404 6405**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6406 6407**参数:** 6408 6409| 参数名 | 类型 | 必填 | 说明 | 6410| ------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | 6411| path | string | 是 | 设置加载页面的路径。 | 6412| storage | [LocalStorage](../../quick-start/arkts-localstorage.md) | 否 | 存储单元,为应用程序范围内的可变状态属性和非可变状态属性提供存储。 | 6413 6414**返回值:** 6415 6416| 类型 | 说明 | 6417| ------------------- | ------------------------- | 6418| Promise<void> | 无返回结果的Promise对象。 | 6419 6420**错误码:** 6421 6422以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6423 6424| 错误码ID | 错误信息 | 6425| ------- | ------------------------------ | 6426| 1300002 | This window state is abnormal. | 6427| 1300005 | This window stage is abnormal. | 6428 6429**示例:** 6430 6431```ts 6432import UIAbility from '@ohos.app.ability.UIAbility'; 6433 6434class myAbility extends UIAbility { 6435 storage : LocalStorage 6436 onWindowStageCreate(windowStage) { 6437 this.storage = new LocalStorage(); 6438 this.storage.setOrCreate('storageSimpleProp',121); 6439 console.log('onWindowStageCreate'); 6440 try { 6441 let promise = windowStage.loadContent('pages/page2',this.storage); 6442 promise.then(() => { 6443 console.info('Succeeded in loading the content.'); 6444 }).catch((err) => { 6445 console.error('Failed to load the content. Cause:' + JSON.stringify(err)); 6446 }); 6447 } catch (exception) { 6448 console.error('Failed to load the content. Cause:' + JSON.stringify(exception)); 6449 }; 6450 } 6451}; 6452``` 6453 6454### loadContent<sup>9+</sup> 6455 6456loadContent(path: string, callback: AsyncCallback<void>): void 6457 6458为当前WindowStage的主窗口加载具体页面内容,使用callback异步回调。 6459 6460**模型约束:** 此接口仅可在Stage模型下使用。 6461 6462**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6463 6464**参数:** 6465 6466| 参数名 | 类型 | 必填 | 说明 | 6467| -------- | ------------------------- | ---- | -------------------- | 6468| path | string | 是 | 设置加载页面的路径。 | 6469| callback | AsyncCallback<void> | 是 | 回调函数。 | 6470 6471**错误码:** 6472 6473以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6474 6475| 错误码ID | 错误信息 | 6476| ------- | ------------------------------ | 6477| 1300002 | This window state is abnormal. | 6478| 1300005 | This window stage is abnormal. | 6479 6480**示例:** 6481 6482```ts 6483import UIAbility from '@ohos.app.ability.UIAbility'; 6484 6485class myAbility extends UIAbility { 6486 onWindowStageCreate(windowStage) { 6487 console.log('onWindowStageCreate'); 6488 try { 6489 windowStage.loadContent('pages/page2', (err) => { 6490 if (err.code) { 6491 console.error('Failed to load the content. Cause:' + JSON.stringify(err)); 6492 return; 6493 } 6494 console.info('Succeeded in loading the content.'); 6495 }); 6496 } catch (exception) { 6497 console.error('Failed to load the content. Cause:' + JSON.stringify(exception)); 6498 }; 6499 } 6500}; 6501``` 6502 6503### on('windowStageEvent')<sup>9+</sup> 6504 6505on(eventType: 'windowStageEvent', callback: Callback<WindowStageEventType>): void 6506 6507开启WindowStage生命周期变化的监听。 6508 6509**模型约束:** 此接口仅可在Stage模型下使用。 6510 6511**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6512 6513**参数:** 6514 6515| 参数名 | 类型 | 必填 | 说明 | 6516| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 6517| type | string | 是 | 监听事件,固定为'windowStageEvent',即WindowStage生命周期变化事件。 | 6518| callback | Callback<[WindowStageEventType](#windowstageeventtype9)> | 是 | 回调函数。返回当前的WindowStage生命周期状态。 | 6519 6520**错误码:** 6521 6522以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6523 6524| 错误码ID | 错误信息 | 6525| ------- | ------------------------------ | 6526| 1300002 | This window state is abnormal. | 6527| 1300005 | This window stage is abnormal. | 6528 6529**示例:** 6530 6531```ts 6532import UIAbility from '@ohos.app.ability.UIAbility'; 6533 6534class myAbility extends UIAbility { 6535 onWindowStageCreate(windowStage) { 6536 console.log('onWindowStageCreate'); 6537 try { 6538 windowStage.on('windowStageEvent', (data) => { 6539 console.info('Succeeded in enabling the listener for window stage event changes. Data: ' + 6540 JSON.stringify(data)); 6541 }); 6542 } catch (exception) { 6543 console.error('Failed to enable the listener for window stage event changes. Cause:' + 6544 JSON.stringify(exception)); 6545 }; 6546 } 6547}; 6548``` 6549 6550### off('windowStageEvent')<sup>9+</sup> 6551 6552off(eventType: 'windowStageEvent', callback?: Callback<WindowStageEventType>): void 6553 6554关闭WindowStage生命周期变化的监听。 6555 6556**模型约束:** 此接口仅可在Stage模型下使用。 6557 6558**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6559 6560**参数:** 6561 6562| 参数名 | 类型 | 必填 | 说明 | 6563| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 6564| type | string | 是 | 监听事件,固定为'windowStageEvent',即WindowStage生命周期变化事件。 | 6565| callback | Callback<[WindowStageEventType](#windowstageeventtype9)> | 否 | 回调函数。返回当前的WindowStage生命周期状态。 | 6566 6567**错误码:** 6568 6569以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6570 6571| 错误码ID | 错误信息 | 6572| ------- | ------------------------------ | 6573| 1300002 | This window state is abnormal. | 6574| 1300005 | This window stage is abnormal. | 6575 6576**示例:** 6577 6578```ts 6579import UIAbility from '@ohos.app.ability.UIAbility'; 6580 6581class myAbility extends UIAbility { 6582 onWindowStageCreate(windowStage) { 6583 console.log('onWindowStageCreate'); 6584 try { 6585 windowStage.off('windowStageEvent'); 6586 } catch (exception) { 6587 console.error('Failed to disable the listener for window stage event changes. Cause:' + 6588 JSON.stringify(exception)); 6589 }; 6590 } 6591}; 6592``` 6593 6594### disableWindowDecor()<sup>9+</sup> 6595 6596disableWindowDecor(): void 6597 6598禁止窗口装饰。 6599 6600**模型约束:** 此接口仅可在Stage模型下使用。 6601 6602**系统接口:** 此接口为系统接口。 6603 6604**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6605 6606**错误码:** 6607 6608以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6609 6610| 错误码ID | 错误信息 | 6611| ------- | ------------------------------ | 6612| 1300002 | This window state is abnormal. | 6613| 1300005 | This window stage is abnormal. | 6614 6615**示例:** 6616 6617```ts 6618import UIAbility from '@ohos.app.ability.UIAbility'; 6619 6620class myAbility extends UIAbility { 6621 onWindowStageCreate(windowStage) { 6622 console.log('disableWindowDecor'); 6623 windowStage.disableWindowDecor(); 6624 } 6625}; 6626``` 6627 6628### setShowOnLockScreen()<sup>9+</sup> 6629 6630setShowOnLockScreen(showOnLockScreen: boolean): void 6631 6632设置应用显示在锁屏之上。 6633 6634**系统接口:** 此接口为系统接口。 6635 6636**模型约束:** 此接口仅可在Stage模型下使用。 6637 6638**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6639 6640**参数:** 6641 6642| 参数名 | 类型 | 必填 | 说明 | 6643| ---------------- | ------- | ---- | ---------------------------- | 6644| showOnLockScreen | boolean | 是 | 是否设置应用显示在锁屏之上。true表示显示在锁屏之上;false表示不显示在锁屏之上。 | 6645 6646**错误码:** 6647 6648以下错误码的详细介绍请参见[窗口错误码](../errorcodes/errorcode-window.md)。 6649 6650| 错误码ID | 错误信息 | 6651| ------- | ------------------------------ | 6652| 1300002 | This window state is abnormal. | 6653| 1300005 | This window stage is abnormal. | 6654 6655**示例:** 6656 6657```ts 6658import UIAbility from '@ohos.app.ability.UIAbility'; 6659 6660class myAbility extends UIAbility { 6661 onWindowStageCreate(windowStage) { 6662 console.log('onWindowStageCreate'); 6663 try { 6664 windowStage.setShowOnLockScreen(true); 6665 } catch (exception) { 6666 console.error('Failed to show on lockscreen. Cause:' + JSON.stringify(exception)); 6667 }; 6668 } 6669}; 6670``` 6671## TransitionContext<sup>9+</sup> 6672 6673属性转换的上下文信息。 6674 6675### 属性 6676 6677**系统接口:** 此接口为系统接口。 6678 6679**系统能力**:SystemCapability.WindowManager.WindowManager.Core 6680 6681| 名称 | 类型 | 可读 | 可写 | 说明 | 6682| --------------------- | ----------------- | ---- | ---- | ---------------- | 6683| toWindow<sup>9+</sup> | [Window](#window) | 是 | 是 | 动画的目标窗口。 | 6684 6685### completeTransition<sup>9+</sup> 6686 6687completeTransition(isCompleted: boolean): void 6688 6689设置属性转换的最终完成状态。该函数需要在动画函数[animateTo()](../arkui-ts/ts-explicit-animation.md)执行后设置。 6690 6691**系统接口:** 此接口为系统接口。 6692 6693**系统能力**:SystemCapability.WindowManager.WindowManager.Core 6694 6695**参数:** 6696 6697| 参数名 | 类型 | 必填 | 说明 | 6698| ----------- | ------- | ---- | ------------------------------------------------------------ | 6699| isCompleted | boolean | 是 | 窗口属性转换是否完成。true表示完成本次转换;false表示撤销本次转换。 | 6700 6701**示例:** 6702 6703```js 6704let controller = windowClass.getTransitionController(); 6705controller.animationForShown = (context : window.TransitionContext) => { 6706 let toWindow = context.toWindow; 6707 animateTo({ 6708 duration: 1000, // 动画时长 6709 tempo: 0.5, // 播放速率 6710 curve: Curve.EaseInOut, // 动画曲线 6711 delay: 0, // 动画延迟 6712 iterations: 1, // 播放次数 6713 playMode: PlayMode.Normal, // 动画模式 6714 }, () => { 6715 let obj : window.TranslateOptions = { 6716 x : 100.0, 6717 y : 0.0, 6718 z : 0.0 6719 }; 6720 toWindow.translate(obj); 6721 console.info('toWindow translate end'); 6722 } 6723 ); 6724 try { 6725 context.completeTransition(true) 6726 } catch (exception) { 6727 console.info('toWindow translate fail. Cause: ' + JSON.stringify(exception)); 6728 } 6729 console.info('complete transition end'); 6730}; 6731``` 6732 6733## TransitionController<sup>9+</sup> 6734 6735属性转换控制器。 6736 6737### animationForShown<sup>9+</sup> 6738 6739animationForShown(context: TransitionContext): void 6740 6741窗口显示时的自定义动画配置。 6742 6743**系统接口:** 此接口为系统接口。 6744 6745**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6746 6747**参数:** 6748 6749| 参数名 | 类型 | 必填 | 说明 | 6750| ------- | ---------------------------------------- | ---- | -------------------- | 6751| context | [TransitionContext](#transitioncontext9) | 是 | 属性转换时的上下文。 | 6752 6753**示例:** 6754 6755```js 6756let controller = windowClass.getTransitionController(); 6757controller.animationForShown = (context : window.TransitionContext) => { 6758 let toWindow = context.toWindow; 6759 animateTo({ 6760 duration: 1000, // 动画时长 6761 tempo: 0.5, // 播放速率 6762 curve: Curve.EaseInOut, // 动画曲线 6763 delay: 0, // 动画延迟 6764 iterations: 1, // 播放次数 6765 playMode: PlayMode.Normal, // 动画模式 6766 onFinish: ()=> { 6767 context.completeTransition(true) 6768 } 6769 }, () => { 6770 let obj : window.TranslateOptions = { 6771 x : 100.0, 6772 y : 0.0, 6773 z : 0.0 6774 }; 6775 toWindow.translate(obj); 6776 console.info('toWindow translate end'); 6777 } 6778 ); 6779 console.info('complete transition end'); 6780}; 6781``` 6782 6783### animationForHidden<sup>9+</sup> 6784 6785animationForHidden(context: TransitionContext): void 6786 6787窗口隐藏时的自定义动画配置。 6788 6789**系统接口:** 此接口为系统接口。 6790 6791**系统能力:** SystemCapability.WindowManager.WindowManager.Core 6792 6793**参数:** 6794 6795| 参数名 | 类型 | 必填 | 说明 | 6796| ------- | ---------------------------------------- | ---- | -------------------- | 6797| context | [TransitionContext](#transitioncontext9) | 是 | 属性转换时的上下文。 | 6798 6799**示例:** 6800 6801```js 6802let controller = windowClass.getTransitionController(); 6803controller.animationForHidden = (context : window.TransitionContext) => { 6804 let toWindow = context.toWindow; 6805 animateTo({ 6806 duration: 1000, // 动画时长 6807 tempo: 0.5, // 播放速率 6808 curve: Curve.EaseInOut, // 动画曲线 6809 delay: 0, // 动画延迟 6810 iterations: 1, // 播放次数 6811 playMode: PlayMode.Normal, // 动画模式 6812 onFinish: ()=> { 6813 context.completeTransition(true) 6814 } 6815 }, () => { 6816 let obj : window.TranslateOptions = { 6817 x : 100.0, 6818 y : 0.0, 6819 z : 0.0 6820 }; 6821 toWindow.translate(obj); 6822 console.info('toWindow translate end'); 6823 } 6824 ) 6825 console.info('complete transition end'); 6826}; 6827``` 6828