Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
4703483b
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
4703483b
编写于
3月 12, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 12, 2022
浏览文件
操作
浏览文件
下载
差异文件
!1970 增加窗口开发指南
Merge pull request !1970 from 陈海莹/master
上级
a0ec609e
a83eaf3f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
132 addition
and
4 deletion
+132
-4
zh-cn/application-dev/Readme-CN.md
zh-cn/application-dev/Readme-CN.md
+3
-2
zh-cn/application-dev/windowmanager/Readme-CN.md
zh-cn/application-dev/windowmanager/Readme-CN.md
+2
-2
zh-cn/application-dev/windowmanager/window-guidelines.md
zh-cn/application-dev/windowmanager/window-guidelines.md
+109
-0
zh-cn/application-dev/windowmanager/window-overview.md
zh-cn/application-dev/windowmanager/window-overview.md
+18
-0
未找到文件。
zh-cn/application-dev/Readme-CN.md
浏览文件 @
4703483b
...
...
@@ -21,14 +21,15 @@
-
[
数据管理
](
database/Readme-CN.md
)
-
[
USB服务
](
usb/Readme-CN.md
)
-
[
DFX
](
dfx/Readme-CN.md
)
-
[
窗口管理
](
windowmanager/Readme-CN.md
)
-
工具
-
[
DevEco Studio(OpenHarmony)使用指南
](
quick-start/deveco-studio-user-guide-for-openharmony.md
)
-
示例教程
-
[
示例代码
](
https://gitee.com/openharmony/app_samples/blob/master/README_zh.md
)
-
[
Codelabs
](
https://gitee.com/openharmony/codelabs/blob/master/README.md
)
-
API参考
-
API参考
-
[
组件参考(基于JS扩展的类Web开发范式)
](
reference/arkui-js/Readme-CN.md
)
-
[
组件参考(基于TS扩展的声明式开发范式)
](
reference/arkui-ts/Readme-CN.md
)
-
[
接口参考
](
reference/apis/Readme-CN.md
)
-
贡献
-
[
参与贡献
](
../contribute/贡献文档.md
)
\ No newline at end of file
-
[
参与贡献
](
../contribute/贡献文档.md
)
zh-cn/application-dev/windowmanager/Readme-CN.md
浏览文件 @
4703483b
# 窗口管理
*
窗口
*
窗口开发概述
*
窗口开发指导
*
[
窗口开发概述
](
window-overview.md
)
*
[
窗口开发指导
](
window-guidelines.md
)
*
显示设备
*
[
屏幕属性开发概述
](
display-overview.md
)
*
[
屏幕属性开发指导
](
display-guidelines.md
)
...
...
zh-cn/application-dev/windowmanager/window-guidelines.md
0 → 100644
浏览文件 @
4703483b
# 窗口开发指导
# 场景介绍
窗口的接口层在应用进程运行,负责对页面布局的加载,和提供应用程序接口。
通过调用窗口接口可以实现窗口创建与销毁,窗口的位置、大小布局,以及进入沉浸式等。
## 接口说明
窗口开放的能力如下:Window类,具体的API详见
[
接口文档
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-window.md
)
。
**表1**
窗口主要接口API
| 接口名 | 描述 |
| :----------------------------------------------------------- | :--------------------------------------------- |
| create(id: string, type: WindowType, callback: AsyncCallback
\<
Window>): void | 创建子窗口。 |
| moveTo(x: number, y: number): Promise
\<
void> | 移动窗口位置,x值为正表示右移,y为正表示右移。 |
| resetSize(width: number, height: number): Promise
\<
void> | 改变当前窗口大小。 |
| hide(): Promise
\<
void> | 隐藏当前窗口。 |
| destroy(): Promise
\<
void> | 销毁当前窗口。 |
## 开发步骤
### 创建主窗口
在当前模型下,应用启动时会自动创建主窗口,由应用管理窗口的声明周期,隐藏及销毁由应用管理。
###创建子窗口
当前可以通过
`create`
接口创建子窗口。具体示例代码如下:
```
import window from '@ohos.window';
var windowClass = null;
let promise = window.create("subWindow", window.WindowType.TYPE_APP);
promise.then((data)=> {
windowClass = data;
console.info('SubWindow created. Data: ' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
});
```
### 获取窗口对象
-
应用内可以通过
`getTopWindow`
来获取当前应用内最后显示的窗口。具体示例代码如下:
```
var windowClass = null;
let promise = window.getTopWindow();
promise.then((data)=> {
windowClass = data;
console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
})
```
-
应用内也可以通过
`Find`
来获取已经创建的子窗口。具体示例代码如下:
```
var windowClass = null;
let promise = window.find("subWindow");
promise.then((data)=> {
windowClass = data;
console.info('window found. Data: ' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to find the Window. Cause: ' + JSON.stringify(err));
});
```
### 窗口的隐藏和销毁
在已经获取到窗口对象的前提下,可以调用
`hide`
、
`destroy`
来隐藏和销毁已经创建的窗口对象。具体示例代码如下:
```
let promise = windowClass.hide();
promise.then((data)=> {
console.info('window hidden. Data: ' + JSON.stringify(data))
windowClass.destroy((err, data) => {
if (err.code) {
console.error('Failed to destroy the window. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data))
})
}).catch((err)=>{
console.error('Failed to hide the window. Cause: ' + JSON.stringify(err));
})
```
### 设置沉浸式窗口
在已经获取到应用窗口对象的前提下:
-
调用
`setFullScreen`
来设置窗口进入全屏沉浸式。
示例代码如下:
```
import window from '@ohos.window';
.onClick(async () => {
try {
const win = await window.getTopWindow()
await win.setFullScreen(true)
} catch (err) {
console.log(`setFullScreen fail, code = ${err.code}`)
}
})
```
完整
[
示例工程
](
https://gitee.com/openharmony/windowmanager/tree/master/AppDemo/window/immersive
)
。
zh-cn/application-dev/windowmanager/window-overview.md
0 → 100644
浏览文件 @
4703483b
# 窗口开发概述
**窗口子系统**
提供窗口管理和Display管理的基础能力,是系统图形界面显示所需的基础子系统。
窗口系统的作用,是提供一种机制,让多个应用界面复用同一块物理屏幕进行显示和交互。每个应用程序中,著需要实现被分配部分的显示区域内的交互界面,窗口作用应用界面的显示容器,而窗口系统负责将这些交互界面组织成最终用户见到的形态。
## 基本概念
**沉浸式**
应用窗口跟状态栏与导航栏颜色一致,视觉上融合。
## 运作机制
为了将图形界面显示在屏幕上,应用和系统需要向窗口系统申请窗口对象,这通常代表了屏幕上一块矩形区域,具有位置、宽高、和叠加层次等属性。同时,窗口对象也负责加载界面中UI框架的根节点,应用程序的UI界面就通过这个根节点在窗口中加载显示。
## 约束与限制
window API提供的相关接口除回调注册
`on`
,注销
`off`
为同步接口外,其余全部为异步接口。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录