From 5e313da7765c3cff5d959d3f305e644d245002b7 Mon Sep 17 00:00:00 2001 From: ge-yafang Date: Thu, 28 Apr 2022 18:40:27 +0800 Subject: [PATCH] update docs Signed-off-by: ge-yafang --- .../reference/apis/js-apis-window.md | 435 +++++++++++++--- .../reference/apis/js-apis-window.md | 469 ++++++++++++++---- 2 files changed, 750 insertions(+), 154 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-window.md b/en/application-dev/reference/apis/js-apis-window.md index 9ab0755c3c..99730544a4 100644 --- a/en/application-dev/reference/apis/js-apis-window.md +++ b/en/application-dev/reference/apis/js-apis-window.md @@ -5,7 +5,7 @@ ## Modules to Import -``` +```js import window from '@ohos.window'; ``` @@ -180,7 +180,7 @@ This API is discarded since API version 8. You are advised to use [window.create - Example - ``` + ```js var windowClass = null; window.create("first", window.WindowType.TYPE_APP, (err, data) => { if (err.code) { @@ -218,7 +218,7 @@ This API is discarded since API version 8. You are advised to use [window.create - Example - ``` + ```js var windowClass = null; let promise = window.create("first", window.WindowType.TYPE_APP); promise.then((data)=> { @@ -248,7 +248,7 @@ Creates a system window when the context is [ServiceExtensionContext](js-apis-se - Example - ``` + ```js var windowClass = null; window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT, (err, data) => { if (err.code) { @@ -285,7 +285,7 @@ Creates a system window when the context is [ServiceExtensionContext](js-apis-se - Example - ``` + ```js var windowClass = null; let promise = window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT); promise.then((data)=> { @@ -313,7 +313,7 @@ Finds a window based on the ID. This API uses an asynchronous callback to return - Example - ``` + ```js var windowClass = null; window.find("alertWindow", (err, data) => { if (err.code) { @@ -347,7 +347,7 @@ Finds a window based on the ID. This API uses a promise to return the result. - Example - ``` + ```js var windowClass = null; let promise = window.find("alertWindow"); promise.then((data)=> { @@ -374,7 +374,7 @@ Obtains the top window of the current application. This API uses an asynchronous - Example - ``` + ```js var windowClass = null; window.getTopWindow((err, data) => { if (err.code) { @@ -402,7 +402,7 @@ Obtains the top window of the current application. This API uses a promise to re - Example - ``` + ```js var windowClass = null; let promise = window.getTopWindow(); promise.then((data)=> { @@ -425,12 +425,12 @@ Obtains the top window of the current application. This API uses an asynchronous | Name | Type | Mandatory| Description | | -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | - | ctx | [Context](js-apis-Context.md) | Yes | Current application context. | + | ctx | Context | Yes | Current application context.For the definition of **Context** of API version 8, see [Context](js-apis-Context.md). For the definition of **Context** of API version 9, see [Context](js-apis-ability-context.md). | | callback | AsyncCallback<[Window](#window)> | Yes | Callback used to return the top window obtained. | - Example - ``` + ```js var windowClass = null; window.getTopWindow(this.context, (err, data) => { if (err.code) { @@ -454,7 +454,7 @@ Obtains the top window of the current application. This API uses a promise to re | Name| Type | Mandatory| Description | | ------ | ------- | ---- | ------------------------------------------------------------ | - | ctx | [Context](js-apis-Context.md) | Yes | Current application context. | + | ctx | Context | Yes | Current application context.For the definition of **Context** of API version 8, see [Context](js-apis-Context.md). For the definition of **Context** of API version 9, see [Context](js-apis-ability-context.md). | - Return value @@ -464,7 +464,7 @@ Obtains the top window of the current application. This API uses a promise to re - Example - ``` + ```js var windowClass = null; let promise = window.getTopWindow(this.context); promise.then((data)=> { @@ -494,7 +494,7 @@ This is a system API and cannot be called by third-party applications. - Example - ``` + ```js var type = 'systemBarTintChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for systemBarTint changes. Data: ' + JSON.stringify(data)); @@ -520,7 +520,7 @@ This is a system API and cannot be called by third-party applications. - Example - ``` + ```js var type = 'systemBarTintChange'; windowClass.off(type); ``` @@ -547,7 +547,7 @@ This is a system API and cannot be called by third-party applications. - Example - ``` + ```js windowClass.hide((err, data) => { if (err.code) { console.error('Failed to hide the window. Cause: ' + JSON.stringify(err)); @@ -575,7 +575,7 @@ This is a system API and cannot be called by third-party applications. - Example - ``` + ```js let promise = windowClass.hide(); promise.then((data)=> { console.info('window hidden. Data: ' + JSON.stringify(data)) @@ -600,7 +600,7 @@ Shows this window. This API uses an asynchronous callback to return the result. - Example - ``` + ```js windowClass.show((err, data) => { if (err.code) { console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); @@ -626,7 +626,7 @@ Shows this window. This API uses a promise to return the result. - Example - ``` + ```js let promise = windowClass.show(); promise.then((data)=> { console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)) @@ -651,7 +651,7 @@ Destroys this window. This API uses an asynchronous callback to return the resul - Example - ``` + ```js windowClass.destroy((err, data) => { if (err.code) { console.error('Failed to destroy the window. Cause:' + JSON.stringify(err)); @@ -677,7 +677,7 @@ Destroys this window. This API uses a promise to return the result. - Example - ``` + ```js let promise = windowClass.destroy(); promise.then((data)=> { console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data)) @@ -704,7 +704,7 @@ Moves the position of this window. This API uses an asynchronous callback to ret - Example - ``` + ```js windowClass.moveTo(300, 300, (err, data)=>{ if (err.code) { console.error('Failed to move the window. Cause:' + JSON.stringify(err)); @@ -738,7 +738,7 @@ Moves the position of this window. This API uses a promise to return the result. - Example - ``` + ```js let promise = windowClass.moveTo(300, 300); promise.then((data)=> { console.info('Window moved. Data: ' + JSON.stringify(data)) @@ -765,7 +765,7 @@ Changes the size of this window. This API uses an asynchronous callback to retur - Example - ``` + ```js windowClass.resetSize(500, 1000, (err, data) => { if (err.code) { console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); @@ -798,7 +798,7 @@ Changes the size of this window. This API uses a promise to return the result. - Example - ``` + ```js let promise = windowClass.resetSize(500, 1000); promise.then((data)=> { console.info('Window size changed. Data: ' + JSON.stringify(data)) @@ -826,7 +826,7 @@ This is a system API and cannot be called by third-party applications. - Example - ``` + ```js var type = window.TYPE_APP; windowClass.setWindowType(type, (err, data) => { if (err.code) { @@ -861,7 +861,7 @@ This is a system API and cannot be called by third-party applications. - Example - ``` + ```js var type = window.TYPE_APP; let promise = windowClass.setWindowType(type); promise.then((data)=> { @@ -887,7 +887,7 @@ Obtains the properties of this window. This API uses an asynchronous callback to - Example - ``` + ```js windowClass.getProperties((err, data) => { if (err.code) { console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err)); @@ -939,7 +939,7 @@ Obtains the area where this window cannot be displayed, for example, the system - Example - ``` + ```js var type = window.AvoidAreaType.TYPE_SYSTEM; windowClass.getAvoidArea(type, (err, data) => { if (err.code) { @@ -972,7 +972,7 @@ Obtains the area where this window cannot be displayed, for example, the system - Example - ``` + ```js let promise = windowClass.getAvoidArea(); promise.then((data)=> { console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data)) @@ -998,7 +998,7 @@ Sets whether to enable the full-screen mode for this window. This API uses an as - Example - ``` + ```js var isFullScreen = true; windowClass.setFullScreen(isFullScreen, (err, data) => { if (err.code) { @@ -1031,7 +1031,7 @@ Sets whether to enable the full-screen mode for this window. This API uses a pro - Example - ``` + ```js var isFullScreen = true; let promise = windowClass.setFullScreen(isFullScreen); promise.then((data)=> { @@ -1058,7 +1058,7 @@ Sets whether the window layout is in full-screen mode. This API uses an asynchro - Example - ``` + ```js var isLayoutFullScreen= true; windowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => { if (err.code) { @@ -1091,7 +1091,7 @@ Sets whether the window layout is in full-screen mode. This API uses a promise t - Example - ``` + ```js var isLayoutFullScreen = true; let promise = windowClass.setLayoutFullScreen(isLayoutFullScreen); promise.then((data)=> { @@ -1118,7 +1118,7 @@ Sets whether to display the status bar and navigation bar in this window. This A - Example - ``` + ```js var names = ["status", "navigation"]; windowClass.setSystemBarEnable(names, (err, data) => { if (err.code) { @@ -1151,7 +1151,7 @@ Sets whether to display the status bar and navigation bar in this window. This A - Example - ``` + ```js var names = ["status", "navigation"]; let promise = windowClass.setSystemBarEnable(names); promise.then((data)=> { @@ -1178,7 +1178,7 @@ Sets the properties of the status bar and navigation bar in this window. This AP - Example - ``` + ```js var SystemBarProperties={ statusBarColor: '#ff00ff', navigationBarColor: '#00ff00', @@ -1220,7 +1220,7 @@ Sets the properties of the status bar and navigation bar in this window. This AP - Example - ``` + ```js var SystemBarProperties={ statusBarColor: '#ff00ff', navigationBarColor: '#00ff00', @@ -1256,7 +1256,7 @@ Loads content to this window. This API uses an asynchronous callback to return t - Example - ``` + ```js windowClass.loadContent("pages/page2/page2", (err, data) => { if (err.code) { console.error('Failed to load the content. Cause:' + JSON.stringify(err)); @@ -1288,7 +1288,7 @@ Loads content to this window. This API uses a promise to return the result. - Example - ``` + ```js let promise = windowClass.loadContent("pages/page2/page2"); promise.then((data)=> { console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)) @@ -1313,7 +1313,7 @@ Checks whether this window is displayed. This API uses an asynchronous callback - Example - ``` + ```js windowClass.isShowing((err, data) => { if (err.code) { console.error('Failed to check whether the window is showing. Cause:' + JSON.stringify(err)); @@ -1339,7 +1339,7 @@ Checks whether this window is displayed. This API uses a promise to return the r - Example - ``` + ```js let promise = windowClass.isShowing(); promise.then((data)=> { console.info('Succeeded in checking whether the window is showing. Data: ' + JSON.stringify(data)) @@ -1365,7 +1365,7 @@ Enables listening for window size changes. - Example - ``` + ```js var type = 'windowSizeChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data)); @@ -1411,7 +1411,7 @@ Enables listening for changes to the area where the window cannot be displayed. - Example - ``` + ```js var type = 'systemAvoidAreaChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for system avoid area changes. Data: ' + JSON.stringify(data)); @@ -1455,11 +1455,11 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a | Name | Type | Mandatory| Description | | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | | type | string | Yes | Listening type.
Set it to **keyboardHeightChange**, which indicates listening for keyboard height changes.| - | callback | Callback<[AvoidArea](#avoidarea)> | Yes | Callback used to return the information. | + | callback | Callback<number> | Yes | Callback used to return the information. | - Example - ``` + ```js var type = 'keyboardHeightChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for keyboard height changes. Data: ' + JSON.stringify(data)); @@ -1506,7 +1506,7 @@ Checks whether this window supports the wide color gamut mode. This API uses an - Example - ``` + ```js windowClass.isSupportWideGamut((err, data) => { if (err.code) { console.error('Failed to check whether the window support WideGamut. Cause:' + JSON.stringify(err)); @@ -1532,7 +1532,7 @@ Checks whether this window supports the wide color gamut mode. This API uses a p - Example - ``` + ```js let promise = windowClass.isSupportWideGamut(); promise.then((data)=> { console.info('Succeeded in checking whether the window support WideGamut. Data: ' + JSON.stringify(data)) @@ -1558,7 +1558,7 @@ Sets this window to the wide or default color gamut mode. This API uses an async - Example - ``` + ```js windowClass.setColorSpace(window.ColorSpace.WIDE_GAMUT, (err, data) => { if (err.code) { console.error('Failed to set window colorspace. Cause:' + JSON.stringify(err)); @@ -1590,7 +1590,7 @@ Sets this window to the wide or default color gamut mode. This API uses a promis - Example - ``` + ```js let promise = windowClass.isSupportWideGamut(window.ColorSpace.WIDE_GAMUT); promise.then((data)=> { console.info('Succeeded in setting window colorspace. Data: ' + JSON.stringify(data)) @@ -1615,7 +1615,7 @@ Obtains the color gamut mode of this window. This API uses an asynchronous callb - Example - ``` + ```js windowClass.getColorSpace((err, data) => { if (err.code) { console.error('Failed to get window color space. Cause:' + JSON.stringify(err)); @@ -1641,7 +1641,7 @@ Obtains the color gamut mode of this window. This API uses a promise to return t - Example - ``` + ```js let promise = windowClass.getColorSpace(); promise.then((data)=> { console.info('Succeeded in getting window color space. Cause:' + JSON.stringify(data)) @@ -1669,7 +1669,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var color = '#00ff33'; windowClass.setBackgroundColor(color, (err, data) => { if (err.code) { @@ -1704,7 +1704,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var color = '#00ff33'; let promise = windowClass.setBackgroundColor(color); promise.then((data)=> { @@ -1733,7 +1733,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var brightness = 1; windowClass.setBrightness(brightness, (err, data) => { if (err.code) { @@ -1768,7 +1768,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var brightness = 1; let promise = windowClass.setBrightness(brightness); promise.then((data)=> { @@ -1797,7 +1797,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js windowClass.setDimBehind(0.5, (err, data) => { if (err.code) { console.error('Failed to set the dimness. Cause: ' + JSON.stringify(err)); @@ -1831,7 +1831,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js let promise = windowClass.setDimBehind(0.5); promise.then((data)=> { console.info('Succeeded in setting the dimness. Data: ' + JSON.stringify(data)) @@ -1859,7 +1859,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isFocusable= true; windowClass.setFocusable(isFocusable, (err, data) => { if (err.code) { @@ -1894,7 +1894,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isFocusable= true; let promise = windowClass.setFocusable(isFocusable); promise.then((data)=> { @@ -1923,7 +1923,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isKeepScreenOn = true; windowClass.setKeepScreenOn(isKeepScreenOn, (err, data) => { if (err.code) { @@ -1958,7 +1958,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isKeepScreenOn= true; let promise = windowClass.setKeepScreenOn(isKeepScreenOn); promise.then((data)=> { @@ -1987,7 +1987,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js windowClass.setOutsideTouchable(true, (err, data) => { if (err.code) { console.error('Failed to set the area to be touchable. Cause: ' + JSON.stringify(err)); @@ -2021,7 +2021,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js let promise = windowClass.setOutsideTouchable(true); promise.then((data)=> { console.info('Succeeded in setting the area to be touchable. Data: ' + JSON.stringify(data)) @@ -2049,7 +2049,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isPrivacyMode = true; windowClass.setPrivacyMode(isPrivacyMode, (err, data) => { if (err.code) { @@ -2085,7 +2085,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isPrivacyMode = true; let promise = windowClass.setPrivacyMode(isPrivacyMode); promise.then((data)=> { @@ -2114,7 +2114,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isTouchable = true; windowClass.setTouchable(isTouchable, (err, data) => { if (err.code) { @@ -2150,7 +2150,7 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a - Example - ``` + ```js var isTouchable = true; let promise = windowClass.setTouchable(isTouchable); promise.then((data)=> { @@ -2160,4 +2160,301 @@ This API is defined but not implemented in OpenHarmony 3.1 Release. It will be a }); ``` -### +## WindowStageEventType9+ + +Describes the lifecycle of a window stage. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core + +| Name | Default Value | Description | +| ---------- | ------------- | ---------------------------------------------- | +| FOREGROUND | 1 | The window stage is running in the foreground. | +| ACTIVE | 2 | The window stage gains focus. | +| INACTIVE | 3 | The window stage loses focus. | +| BACKGROUND | 4 | The window stage is running in the background. | + +## WindowStage9+ + +Before calling any of the following APIs, you must use `[onWindowStageCreate()](js-apis-application-ability.md#abilityonwindowstagecreate)` to create a **WindowStage** instance. + +### getMainWindow9+ + +getMainWindow(): Promise<Window> + +Obtains the main window of this window stage. This API uses a promise to return the result. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core + +- Return value + + | Type | Description | + | -------------------------------- | --------------------------------------- | + | Promise<[Window](#window)> | Promise used to return the main window. | + +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + let promise = windowStage.getMainWindow(); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)) + }).catch((err)=>{ + console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); + }); + } + } + ``` + +### getMainWindow9+ + +getMainWindow(callback: AsyncCallback<Window>): void + +Obtains the main window of this window stage. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core + +- Parameters + + | Name | Type | Mandatory | Description | + | -------- | -------------------------------------- | --------- | ---------------------------------------- | + | callback | AsyncCallback<[Window](#window)> | Yes | Callback used to return the main window. | + +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + windowStage.getMainWindow((err, data) => { + if (err.code) { + console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)); + }); + } + } + ``` + +### createSubWindow9+ + +createSubWindow(name: string): Promise<Window> + +Creates a subwindow for this window stage. This API uses a promise to return the result. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core +- Parameters + + | Name | Type | Mandatory | Description | + | ---- | ------ | --------- | ---------------------- | + | name | String | Yes | Name of the subwindow. | +- Return value + + | Type | Description | + | -------------------------------- | --------------------------------------------- | + | Promise<[Window](#window)> | Promise used to return the subwindow created. | +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + let promise = windowStage.createSubWindow("mySubWindow"); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in create sub window. Data: ' + JSON.stringify(data)) + }).catch((err)=>{ + console.error('Failed to create sub window. Cause: ' + JSON.stringify(err)); + }) + } + } + ``` + +### createSubWindow9+ + +createSubWindow(name: string, callback: AsyncCallback<Window>): void + +Creates a subwindow for this window stage. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core + +- Parameters + + | Name | Type | Mandatory | Description | + | -------- | -------------------------------------- | --------- | ---------------------------------------------- | + | name | String | Yes | Name of the subwindow. | + | callback | AsyncCallback<[Window](#window)> | Yes | Callback used to return the subwindow created. | + +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + windowStage.createSubWindow("mySubWindow", (err, data) => { + if (err.code) { + console.error('Failed to create sub window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in create sub window. Data: ' + JSON.stringify(data)); + windowClass.resetSize(500, 1000); + }); + } + } + ``` + +### getSubWindow9+ + +getSubWindow(): Promise<Array<Window>> + +Obtains all the subwindows of this window stage. This API uses a promise to return the result. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core +- Return value + + | Type | Description | + | --------------------------------------------- | ------------------------------------------ | + | Promise<Array<[Window](#window)>> | Promise used to return all the subwindows. | + +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + let promise = windowStage.getSubWindow(); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in obtaining the sub window. Data: ' + JSON.stringify(data)) + }).catch((err)=>{ + console.error('Failed to obtain the sub window. Cause: ' + JSON.stringify(err)); + }) + } + } + ``` + +### getSubWindow9+ + +getSubWindow(callback: AsyncCallback<Array<Window>>): void + +Obtains all the subwindows of this window stage. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core +- Parameters + + | Name | Type | Mandatory | Description | + | -------- | --------------------------------------------------- | --------- | ------------------------------------------- | + | callback | AsyncCallback<Array<[Window](#window)>> | Yes | Callback used to return all the subwindows. | + +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + windowStage.getSubWindow((err, data) => { + if (err.code) { + console.error('Failed to obtain the sub window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in obtaining the sub window. Data: ' + JSON.stringify(data)); + }); + } + } + ``` + +### loadContent9+ + +loadContent(path: string, callback: AsyncCallback<void>): void + +Loads content to this window stage. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.WindowManager.WindowManager.Coretype with the value 'windowSizeChange' + +- Parameters + + | Name | Type | Mandatory | Description | + | -------- | ------------------------- | --------- | ------------------------------------------------------- | + | path | string | Yes | Path of the page from which the content will be loaded. | + | callback | AsyncCallback<void> | Yes | Callback used to return the execution result. | + +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + windowStage.loadContent("pages/page2", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)) + }); + } + } + ``` +### on('windowStageEvent')9+ + +on(eventType: 'windowStageEvent', callback: Callback<WindowStageEventType>): void + +Enables listening for window stage lifecycle changes. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core +- Parameters + + | Name | Type | Mandatory | Description | + | -------- | ------------------------------------------------------------ | --------- | ------------------------------------------------------------ | + | type | string | Yes | Listening type.
Set it to **windowStageEvent**, which indicates listening for window stage lifecycle changes. | + | callback | Callback<[WindowStageEventType](#windowstageeventtype9)> | Yes | Callback used to return the information. | + +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var type = 'windowStageEvent'; + windowStage.on(type, (data) => { + console.info('Succeeded in enabling the listener for window stage event changes. Data: ' + JSON.stringify(data)); + }); + } + } + ``` + +### off('windowStageEvent')9+ + +off(eventType: 'windowStageEvent', callback?: Callback<WindowStageEventType>): void + +Disables listening for window stage lifecycle changes. + +**System capability**: SystemCapability.WindowManager.WindowManager.Core +- Parameters + + | Name | Type | Mandatory | Description | + | -------- | ------------------------------------------------------------ | --------- | ------------------------------------------------------------ | + | type | string | Yes | Listening type.
Set it to **windowStageEvent**, which indicates listening for window stage lifecycle changes. | + | callback | Callback<[WindowStageEventType](#windowstageeventtype9)> | No | Callback used to return the information. | +- Example + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var type = 'windowStageEvent'; + windowStage.off(type); + } + } + ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-window.md b/zh-cn/application-dev/reference/apis/js-apis-window.md index 546ef489e8..2ebdfbce75 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-window.md +++ b/zh-cn/application-dev/reference/apis/js-apis-window.md @@ -2,10 +2,12 @@ > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> +> API 9当前为Canary版本,仅供试用,不保证接口可稳定调用。 ## 导入模块 -``` +```js import window from '@ohos.window'; ``` @@ -180,7 +182,7 @@ create(id: string, type: WindowType, callback: AsyncCallback<Window>): voi - 示例 - ``` + ```js var windowClass = null; window.create("first", window.WindowType.TYPE_APP, (err, data) => { if (err.code) { @@ -218,7 +220,7 @@ create(id: string, type: WindowType): Promise<Window> - 示例 - ``` + ```js var windowClass = null; let promise = window.create("first", window.WindowType.TYPE_APP); promise.then((data)=> { @@ -233,22 +235,22 @@ create(id: string, type: WindowType): Promise<Window> create(ctx: Context, id: string, type: WindowType, callback: AsyncCallback<Window>): void -当Context为[ServiceExtensionContext](js-apis-service-extension-context.md)时,创建系统窗口,使用callback方式作为异步方法。 +当Context为[ServiceExtAbilityContext](js-apis-serviceExtAbilityContext.md)时,创建系统窗口,使用callback方式作为异步方法。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core - 参数 - | 参数名 | 类型 | 必填 | 说明 | - | -------- | ----------------------------------------------- | ---- | ---------------------- | - | ctx | [Context](js-apis-service-extension-context.md) | 是 | 当前应用上下文信息。 | - | id | string | 是 | 窗口id。 | - | type | [WindowType](#windowtype) | 是 | 窗口类型。 | - | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前窗口对象。 | + | 参数名 | 类型 | 必填 | 说明 | + | -------- | ---------------------------------------------- | ---- | ---------------------- | + | ctx | [Context](js-apis-serviceExtAbilityContext.md) | 是 | 当前应用上下文信息。 | + | id | string | 是 | 窗口id。 | + | type | [WindowType](#windowtype) | 是 | 窗口类型。 | + | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前窗口对象。 | - 示例 - ``` + ```js var windowClass = null; window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT, (err, data) => { if (err.code) { @@ -265,17 +267,17 @@ create(ctx: Context, id: string, type: WindowType, callback: AsyncCallback<Wi create(ctx: Context, id: string, type: WindowType): Promise<Window> -当Context为[ServiceExtensionContext](js-apis-service-extension-context.md)时,创建系统窗口,使用Promise方式作为异步方法。 +当Context为[ServiceExtAbilityContext](js-apis-serviceExtAbilityContext.md)时,创建系统窗口,使用Promise方式作为异步方法。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core - 参数 - | 参数名 | 类型 | 必填 | 说明 | - | ------ | ----------------------------------------------- | ---- | -------------------- | - | ctx | [Context](js-apis-service-extension-context.md) | 是 | 当前应用上下文信息。 | - | id | string | 是 | 窗口id。 | - | type | [WindowType](#windowtype) | 是 | 窗口类型。 | + | 参数名 | 类型 | 必填 | 说明 | + | ------ | ---------------------------------------------- | ---- | -------------------- | + | ctx | [Context](js-apis-serviceExtAbilityContext.md) | 是 | 当前应用上下文信息。 | + | id | string | 是 | 窗口id。 | + | type | [WindowType](#windowtype) | 是 | 窗口类型。 | - 返回值 @@ -285,7 +287,7 @@ create(ctx: Context, id: string, type: WindowType): Promise<Window> - 示例 - ``` + ```js var windowClass = null; let promise = window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT); promise.then((data)=> { @@ -313,7 +315,7 @@ find(id: string, callback: AsyncCallback<Window>): void - 示例 - ``` + ```js var windowClass = null; window.find("alertWindow", (err, data) => { if (err.code) { @@ -347,7 +349,7 @@ find(id: string): Promise<Window> - 示例 - ``` + ```js var windowClass = null; let promise = window.find("alertWindow"); promise.then((data)=> { @@ -374,7 +376,7 @@ getTopWindow(callback: AsyncCallback<Window>): void - 示例 - ``` + ```js var windowClass = null; window.getTopWindow((err, data) => { if (err.code) { @@ -402,7 +404,7 @@ getTopWindow(): Promise<Window> - 示例 - ``` + ```js var windowClass = null; let promise = window.getTopWindow(); promise.then((data)=> { @@ -425,12 +427,12 @@ getTopWindow(ctx: Context, callback: AsyncCallback<Window>): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | - | ctx | Context | 是 | 当前应用上下文信息。API8的Context定义见[Context](js-apis-Context.md)。 | + | ctx | Context | 是 | 当前应用上下文信息。API 8的Context定义见[Context](js-apis-Context.md)。API 9的Context定义见[Context](js-apis-ability-context.md)。 | | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前应用内最后显示的窗口对象。 | - 示例 - ``` + ```js var windowClass = null; window.getTopWindow(this.context, (err, data) => { if (err.code) { @@ -454,7 +456,7 @@ getTopWindow(ctx: Context): Promise<Window> | 参数名 | 类型 | 必填 | 说明 | | ------ | ------- | ---- | ------------------------------------------------------------ | - | ctx | Context | 是 | 当前应用上下文信息。API8的Context定义见[Context](js-apis-Context.md)。 | + | ctx | Context | 是 | 当前应用上下文信息。API8的Context定义见[Context](js-apis-Context.md)。API 9的Context定义见[Context](js-apis-ability-context.md)。 | - 返回值 @@ -464,7 +466,7 @@ getTopWindow(ctx: Context): Promise<Window> - 示例 - ``` + ```js var windowClass = null; let promise = window.getTopWindow(this.context); promise.then((data)=> { @@ -494,7 +496,7 @@ on(type: 'systemBarTintChange', callback: Callback<SystemBarTintState>): v - 示例 - ``` + ```js var type = 'systemBarTintChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for systemBarTint changes. Data: ' + JSON.stringify(data)); @@ -520,7 +522,7 @@ off(type: 'systemBarTintChange', callback?: Callback<SystemBarTintState >) - 示例 - ``` + ```js var type = 'systemBarTintChange'; windowClass.off(type); ``` @@ -547,7 +549,7 @@ hide (callback: AsyncCallback<void>): void - 示例 - ``` + ```js windowClass.hide((err, data) => { if (err.code) { console.error('Failed to hide the window. Cause: ' + JSON.stringify(err)); @@ -575,7 +577,7 @@ hide(): Promise<void> - 示例 - ``` + ```js let promise = windowClass.hide(); promise.then((data)=> { console.info('window hidden. Data: ' + JSON.stringify(data)) @@ -600,7 +602,7 @@ show(callback: AsyncCallback<void>): void - 示例 - ``` + ```js windowClass.show((err, data) => { if (err.code) { console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); @@ -626,7 +628,7 @@ show(): Promise<void> - 示例 - ``` + ```js let promise = windowClass.show(); promise.then((data)=> { console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)) @@ -651,7 +653,7 @@ destroy(callback: AsyncCallback<void>): void - 示例 - ``` + ```js windowClass.destroy((err, data) => { if (err.code) { console.error('Failed to destroy the window. Cause:' + JSON.stringify(err)); @@ -677,7 +679,7 @@ destroy(): Promise<void> - 示例 - ``` + ```js let promise = windowClass.destroy(); promise.then((data)=> { console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data)) @@ -704,7 +706,7 @@ moveTo(x: number, y: number, callback: AsyncCallback<void>): void - 示例 - ``` + ```js windowClass.moveTo(300, 300, (err, data)=>{ if (err.code) { console.error('Failed to move the window. Cause:' + JSON.stringify(err)); @@ -738,7 +740,7 @@ moveTo(x: number, y: number): Promise<void> - 示例 - ``` + ```js let promise = windowClass.moveTo(300, 300); promise.then((data)=> { console.info('Window moved. Data: ' + JSON.stringify(data)) @@ -765,7 +767,7 @@ resetSize(width: number, height: number, callback: AsyncCallback<void>): v - 示例 - ``` + ```js windowClass.resetSize(500, 1000, (err, data) => { if (err.code) { console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); @@ -798,7 +800,7 @@ resetSize(width: number, height: number): Promise<void> - 示例 - ``` + ```js let promise = windowClass.resetSize(500, 1000); promise.then((data)=> { console.info('Window size changed. Data: ' + JSON.stringify(data)) @@ -826,7 +828,7 @@ setWindowType(type: WindowType, callback: AsyncCallback<void>): void - 示例 - ``` + ```js var type = window.TYPE_APP; windowClass.setWindowType(type, (err, data) => { if (err.code) { @@ -861,7 +863,7 @@ setWindowType(type: WindowType): Promise<void> - 示例 - ``` + ```js var type = window.TYPE_APP; let promise = windowClass.setWindowType(type); promise.then((data)=> { @@ -887,7 +889,7 @@ getProperties(callback: AsyncCallback<WindowProperties>): void - 示例 - ``` + ```js windowClass.getProperties((err, data) => { if (err.code) { console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err)); @@ -913,7 +915,7 @@ getProperties(): Promise<WindowProperties> - 示例 - ``` + ```js let promise = windowClass.getProperties(); promise.then((data)=> { console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data)) @@ -939,7 +941,7 @@ getAvoidArea(type: AvoidAreaType, callback: AsyncCallback<AvoidArea>): voi - 示例 - ``` + ```js var type = window.AvoidAreaType.TYPE_SYSTEM; windowClass.getAvoidArea(type, (err, data) => { if (err.code) { @@ -972,7 +974,7 @@ getAvoidArea(type: AvoidAreaType): Promise<AvoidArea> - 示例 - ``` + ```js let promise = windowClass.getAvoidArea(); promise.then((data)=> { console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data)) @@ -998,7 +1000,7 @@ setFullScreen(isFullScreen: boolean, callback: AsyncCallback<void>): void - 示例 - ``` + ```js var isFullScreen = true; windowClass.setFullScreen(isFullScreen, (err, data) => { if (err.code) { @@ -1031,7 +1033,7 @@ setFullScreen(isFullScreen: boolean): Promise<void> - 示例 - ``` + ```js var isFullScreen = true; let promise = windowClass.setFullScreen(isFullScreen); promise.then((data)=> { @@ -1058,7 +1060,7 @@ setLayoutFullScreen(isLayoutFullScreen: boolean, callback: AsyncCallback<void - 示例 - ``` + ```js var isLayoutFullScreen= true; windowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => { if (err.code) { @@ -1091,7 +1093,7 @@ setLayoutFullScreen(isLayoutFullScreen: boolean): Promise<void> - 示例 - ``` + ```js var isLayoutFullScreen = true; let promise = windowClass.setLayoutFullScreen(isLayoutFullScreen); promise.then((data)=> { @@ -1118,7 +1120,7 @@ setSystemBarEnable(names: Array<'status' | 'navigation'>, callback: AsyncCallbac - 示例 - ``` + ```js var names = ["status", "navigation"]; windowClass.setSystemBarEnable(names, (err, data) => { if (err.code) { @@ -1151,7 +1153,7 @@ setSystemBarEnable(names: Array<'status' | 'navigation'>): Promise<void> - 示例 - ``` + ```js var names = ["status", "navigation"]; let promise = windowClass.setSystemBarEnable(names); promise.then((data)=> { @@ -1178,7 +1180,7 @@ setSystemBarProperties(systemBarProperties: SystemBarProperties, callback: Async - 示例 - ``` + ```js var SystemBarProperties={ statusBarColor: '#ff00ff', navigationBarColor: '#00ff00', @@ -1220,7 +1222,7 @@ setSystemBarProperties(systemBarProperties: SystemBarProperties): Promise<voi - 示例 - ``` + ```js var SystemBarProperties={ statusBarColor: '#ff00ff', navigationBarColor: '#00ff00', @@ -1256,7 +1258,7 @@ loadContent(path: string, callback: AsyncCallback<void>): void - 示例 - ``` + ```js windowClass.loadContent("pages/page2/page2", (err, data) => { if (err.code) { console.error('Failed to load the content. Cause:' + JSON.stringify(err)); @@ -1288,7 +1290,7 @@ loadContent(path: string): Promise<void> - 示例 - ``` + ```js let promise = windowClass.loadContent("pages/page2/page2"); promise.then((data)=> { console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)) @@ -1313,7 +1315,7 @@ isShowing(callback: AsyncCallback<boolean>): void - 示例 - ``` + ```js windowClass.isShowing((err, data) => { if (err.code) { console.error('Failed to check whether the window is showing. Cause:' + JSON.stringify(err)); @@ -1339,7 +1341,7 @@ isShowing(): Promise<boolean> - 示例 - ``` + ```js let promise = windowClass.isShowing(); promise.then((data)=> { console.info('Succeeded in checking whether the window is showing. Data: ' + JSON.stringify(data)) @@ -1365,7 +1367,7 @@ on(type: 'windowSizeChange', callback: Callback<Size>): void - 示例 - ``` + ```js var type = 'windowSizeChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data)); @@ -1411,7 +1413,7 @@ on(type: 'systemAvoidAreaChange', callback: Callback<AvoidArea>): void - 示例 - ``` + ```js var type = 'systemAvoidAreaChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for system avoid area changes. Data: ' + JSON.stringify(data)); @@ -1452,14 +1454,14 @@ on(type: 'keyboardHeightChange', callback: Callback<number>): void - 参数 - | 参数名 | 类型 | 必填 | 说明 | - | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | - | type | string | 是 | 设置监听类型。
- type为'keyboardHeightChange'时表示监听类型为键盘高度变化监听。 | - | callback | Callback<[AvoidArea](#avoidarea)> | 是 | 回调返回监听到的信息。 | + | 参数名 | 类型 | 必填 | 说明 | + | -------- | ------------------ | ---- | ------------------------------------------------------------ | + | type | string | 是 | 设置监听类型。
- type为'keyboardHeightChange'时表示监听类型为键盘高度变化监听。 | + | callback | Callbacknumber> | 是 | 回调返回监听到的信息。 | - 示例 - ``` + ```js var type = 'keyboardHeightChange'; windowClass.on(type, (data) => { console.info('Succeeded in enabling the listener for keyboard height changes. Data: ' + JSON.stringify(data)); @@ -1506,7 +1508,7 @@ isSupportWideGamut(callback: AsyncCallback<boolean>): void - 示例 - ``` + ```js windowClass.isSupportWideGamut((err, data) => { if (err.code) { console.error('Failed to check whether the window support WideGamut. Cause:' + JSON.stringify(err)); @@ -1558,7 +1560,7 @@ setColorSpace(colorSpace:ColorSpace, callback: AsyncCallback<void>): void - 示例 - ``` + ```js windowClass.setColorSpace(window.ColorSpace.WIDE_GAMUT, (err, data) => { if (err.code) { console.error('Failed to set window colorspace. Cause:' + JSON.stringify(err)); @@ -1590,7 +1592,7 @@ setColorSpace(colorSpace:ColorSpace): Promise<void> - 示例 - ``` + ```js let promise = windowClass.isSupportWideGamut(window.ColorSpace.WIDE_GAMUT); promise.then((data)=> { console.info('Succeeded in setting window colorspace. Data: ' + JSON.stringify(data)) @@ -1615,7 +1617,7 @@ getColorSpace(callback: AsyncCallback<ColorSpace>): void - 示例 - ``` + ```js windowClass.getColorSpace((err, data) => { if (err.code) { console.error('Failed to get window color space. Cause:' + JSON.stringify(err)); @@ -1641,7 +1643,7 @@ getColorSpace(): Promise<ColorSpace> - 示例 - ``` + ```js let promise = windowClass.getColorSpace(); promise.then((data)=> { console.info('Succeeded in getting window color space. Cause:' + JSON.stringify(data)) @@ -1669,7 +1671,7 @@ setBackgroundColor(color: string, callback: AsyncCallback<void>): void - 示例 - ``` + ```js var color = '#00ff33'; windowClass.setBackgroundColor(color, (err, data) => { if (err.code) { @@ -1704,7 +1706,7 @@ setBackgroundColor(color: string): Promise<void> - 示例 - ``` + ```js var color = '#00ff33'; let promise = windowClass.setBackgroundColor(color); promise.then((data)=> { @@ -1733,7 +1735,7 @@ setBrightness(brightness: number, callback: AsyncCallback<void>): void - 示例 - ``` + ```js var brightness = 1; windowClass.setBrightness(brightness, (err, data) => { if (err.code) { @@ -1768,7 +1770,7 @@ setBrightness(brightness: number): Promise<void> - 示例 - ``` + ```js var brightness = 1; let promise = windowClass.setBrightness(brightness); promise.then((data)=> { @@ -1797,7 +1799,7 @@ setDimBehind(dimBehindValue: number, callback: AsyncCallback<void>): void - 示例 - ``` + ```js windowClass.setDimBehind(0.5, (err, data) => { if (err.code) { console.error('Failed to set the dimness. Cause: ' + JSON.stringify(err)); @@ -1831,7 +1833,7 @@ setDimBehind(dimBehindValue: number): Promise<void> - 示例 - ``` + ```js let promise = windowClass.setDimBehind(0.5); promise.then((data)=> { console.info('Succeeded in setting the dimness. Data: ' + JSON.stringify(data)) @@ -1859,7 +1861,7 @@ setFocusable(isFocusable: boolean, callback: AsyncCallback<void>): void - 示例 - ``` + ```js var isFocusable= true; windowClass.setFocusable(isFocusable, (err, data) => { if (err.code) { @@ -1894,7 +1896,7 @@ setFocusable(isFocusable: boolean): Promise<void> - 示例 - ``` + ```js var isFocusable= true; let promise = windowClass.setFocusable(isFocusable); promise.then((data)=> { @@ -1923,7 +1925,7 @@ setKeepScreenOn(isKeepScreenOn: boolean, callback: AsyncCallback<void>): v - 示例 - ``` + ```js var isKeepScreenOn = true; windowClass.setKeepScreenOn(isKeepScreenOn, (err, data) => { if (err.code) { @@ -1958,7 +1960,7 @@ setKeepScreenOn(isKeepScreenOn: boolean): Promise<void> - 示例 - ``` + ```js var isKeepScreenOn= true; let promise = windowClass.setKeepScreenOn(isKeepScreenOn); promise.then((data)=> { @@ -1987,7 +1989,7 @@ setOutsideTouchable(touchable: boolean, callback: AsyncCallback<void>): vo - 示例 - ``` + ```js windowClass.setOutsideTouchable(true, (err, data) => { if (err.code) { console.error('Failed to set the area to be touchable. Cause: ' + JSON.stringify(err)); @@ -2021,7 +2023,7 @@ setOutsideTouchable(touchable: boolean): Promise<void> - 示例 - ``` + ```js let promise = windowClass.setOutsideTouchable(true); promise.then((data)=> { console.info('Succeeded in setting the area to be touchable. Data: ' + JSON.stringify(data)) @@ -2049,7 +2051,7 @@ setPrivacyMode(isPrivacyMode: boolean, callback: AsyncCallback<void>): voi - 示例 - ``` + ```js var isPrivacyMode = true; windowClass.setPrivacyMode(isPrivacyMode, (err, data) => { if (err.code) { @@ -2085,7 +2087,7 @@ setPrivacyMode(isPrivacyMode: boolean): Promise<void> - 示例 - ``` + ```js var isPrivacyMode = true; let promise = windowClass.setPrivacyMode(isPrivacyMode); promise.then((data)=> { @@ -2114,7 +2116,7 @@ setTouchable(isTouchable: boolean, callback: AsyncCallback<void>): void - 示例 - ``` + ```js var isTouchable = true; windowClass.setTouchable(isTouchable, (err, data) => { if (err.code) { @@ -2150,7 +2152,7 @@ setTouchable(isTouchable: boolean): Promise<void> - 示例 - ``` + ```js var isTouchable = true; let promise = windowClass.setTouchable(isTouchable); promise.then((data)=> { @@ -2160,4 +2162,301 @@ setTouchable(isTouchable: boolean): Promise<void> }); ``` -### \ No newline at end of file +## WindowStageEventType9+ + +WindowStage生命周期。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.WindowManager.WindowManager.Core + +| 名称 | 默认值 | 说明 | +| ---------- | ------ | -------- | +| FOREGROUND | 1 | 切到前台 | +| ACTIVE | 2 | 获焦状态 | +| INACTIVE | 3 | 失焦状态 | +| BACKGROUND | 4 | 切到后台 | + +## WindowStage9+ + +下列API示例中都需在[onWindowStageCreate()](js-apis-application-ability.md#abilityonwindowstagecreate)函数中使用WindowStage的实例调用对应方法。 + +### getMainWindow9+ + +getMainWindow(): Promise<Window> + +获取该WindowStage实例下的主窗口,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core + +- 返回值 + + | 类型 | 说明 | + | -------------------------------- | ---------------------------------------------------------- | + | Promise<[Window](#window)> | 以Promise形式返回结果,返回当前WindowStage下的主窗口对象。 | + +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + let promise = windowStage.getMainWindow(); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)) + }).catch((err)=>{ + console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); + }); + } + } + ``` + +### getMainWindow9+ + +getMainWindow(callback: AsyncCallback<Window>): void + +获取该WindowStage实例下的主窗口,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core + +- 参数 + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------------------------------------- | ---- | --------------------------------------- | + | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前WindowStage下的主窗口对象。 | + +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + windowStage.getMainWindow((err, data) => { + if (err.code) { + console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)); + }); + } + } + ``` + +### createSubWindow9+ + +createSubWindow(name: string): Promise<Window> + +创建该WindowStage实例下的子窗口,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core +- 参数 + + | 参数名 | 类型 | 必填 | 说明 | + | ------ | ------ | ---- | -------------- | + | name | String | 是 | 子窗口的名字。 | +- 返回值 + + | 类型 | 说明 | + | -------------------------------- | ------------------------------------------------- | + | Promise<[Window](#window)> | 以Promise形式返回结果,返回当前创建的子窗口对象。 | +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + let promise = windowStage.createSubWindow("mySubWindow"); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in create sub window. Data: ' + JSON.stringify(data)) + }).catch((err)=>{ + console.error('Failed to create sub window. Cause: ' + JSON.stringify(err)); + }) + } + } + ``` + +### createSubWindow9+ + +createSubWindow(name: string, callback: AsyncCallback<Window>): void + +创建该WindowStage实例下的子窗口,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core + +- 参数 + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------------------------------------- | ---- | ------------------------------ | + | name | String | 是 | 子窗口的名字。 | + | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前创建的子窗口对象。 | + +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + windowStage.createSubWindow("mySubWindow", (err, data) => { + if (err.code) { + console.error('Failed to create sub window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in create sub window. Data: ' + JSON.stringify(data)); + windowClass.resetSize(500, 1000); + }); + } + } + ``` + +### getSubWindow9+ + +getSubWindow(): Promise<Array<Window>> + +获取该WindowStage实例下的所有子窗口,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core +- 返回值 + + | 类型 | 说明 | + | --------------------------------------------- | ------------------------------------------------------------ | + | Promise<Array<[Window](#window)>> | 以Promise形式返回结果,返回当前WindowStage下的所有子窗口对象。 | + +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + let promise = windowStage.getSubWindow(); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in obtaining the sub window. Data: ' + JSON.stringify(data)) + }).catch((err)=>{ + console.error('Failed to obtain the sub window. Cause: ' + JSON.stringify(err)); + }) + } + } + ``` + +### getSubWindow9+ + +getSubWindow(callback: AsyncCallback<Array<Window>>): void + +获取该WindowStage实例下的所有子窗口,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core +- 参数 + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | --------------------------------------------------- | ---- | ------------------------------------------- | + | callback | AsyncCallback<Array<[Window](#window)>> | 是 | 回调返回当前WindowStage下的所有子窗口对象。 | + +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var windowClass = null; + windowStage.getSubWindow((err, data) => { + if (err.code) { + console.error('Failed to obtain the sub window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in obtaining the sub window. Data: ' + JSON.stringify(data)); + }); + } + } + ``` + +### loadContent9+ + +loadContent(path: string, callback: AsyncCallback<void>): void + +为当前WindowStage的主窗口加载具体页面内容,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Coretype为'windowSizeChange' + +- 参数 + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | ------------------------- | ---- | -------------------- | + | path | string | 是 | 设置加载页面的路径。 | + | callback | AsyncCallback<void> | 是 | 回调函数。 | + +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + windowStage.loadContent("pages/page2", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)) + }); + } + } + ``` +### on('windowStageEvent')9+ + +on(eventType: 'windowStageEvent', callback: Callback<WindowStageEventType>): void + +开启WindowStage生命周期变化的监听。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core +- 参数 + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | + | type | string | 是 | 设置监听类型。
- type为'windowStageEvent'时表示监听类型为WindowStage生命周期变化监听。 | + | callback | Callback<[WindowStageEventType](#windowstageeventtype9)> | 是 | 回调返回监听到的信息。 | + +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var type = 'windowStageEvent'; + windowStage.on(type, (data) => { + console.info('Succeeded in enabling the listener for window stage event changes. Data: ' + JSON.stringify(data)); + }); + } + } + ``` + +### off('windowStageEvent')9+ + +off(eventType: 'windowStageEvent', callback?: Callback<WindowStageEventType>): void + +关闭WindowStage生命周期变化的监听。 + +**系统能力**:SystemCapability.WindowManager.WindowManager.Core +- 参数 + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | + | type | string | 是 | 设置监听类型。
- type为'windowStageEvent'时表示监听类型为WindowStage生命周期变化监听。 | + | callback | Callback<[WindowStageEventType](#windowstageeventtype9)> | 否 | 回调返回监听到的信息。 | +- 示例 + + ```ts + class myAbility extends Ability { + onWindowStageCreate(windowStage) { + console.log('onWindowStageCreate'); + var type = 'windowStageEvent'; + windowStage.off(type); + } + } + ``` \ No newline at end of file -- GitLab