Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
33c254fc
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看板
未验证
提交
33c254fc
编写于
6月 20, 2023
作者:
葛
葛亚芳
提交者:
Gitee
6月 20, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/windowmanager/application-window-stage.md.
Signed-off-by:
N
葛亚芳
<
geyafang@huawei.com
>
上级
0a496acb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
35 deletion
+11
-35
zh-cn/application-dev/windowmanager/application-window-stage.md
...application-dev/windowmanager/application-window-stage.md
+11
-35
未找到文件。
zh-cn/application-dev/windowmanager/application-window-stage.md
浏览文件 @
33c254fc
...
...
@@ -286,45 +286,21 @@ export default class EntryAbility extends UIAbility {
### 开发步骤
1.
申请权限。
创建
`WindowType.TYPE_FLOAT`
即悬浮窗类型的窗口,需要在
`module.json5`
文件的
`requestPermissions`
对象中配置
`ohos.permission.SYSTEM_FLOAT_WINDOW`
权限。更多配置信息详见
[
module.json5配置文件
](
../quick-start/module-configuration-file.md
)
。
> **说明:**
>
> 虽然悬浮窗具备始终在前台显示的能力,但如果创建悬浮窗的应用任务被系统回收,仍然会导致悬浮窗从界面移除。如果想要保持悬浮窗口始终在前台显示,请申请[长时任务](../task-management/continuous-task-dev-guide.md)。
```
json
{
"module"
:
{
"requestPermissions"
:[
{
"name"
:
"ohos.permission.SYSTEM_FLOAT_WINDOW"
,
"usedScene"
:
{
"abilities"
:
[
"EntryAbility"
],
"when"
:
"inuse"
}
}
]
}
}
```
2.
创建悬浮窗。
**前提条件:**
创建
`WindowType.TYPE_FLOAT`
即悬浮窗类型的窗口,需要申请
`ohos.permission.SYSTEM_FLOAT_WINDOW`
权限,配置方式请参见
[
配置文件权限声明
](
../security/accesstoken-guidelines.md#配置文件权限声明
)
。
1.
创建悬浮窗。
通过
`window.createWindow`
接口创建悬浮窗类型的窗口。
3
.
对悬浮窗进行属性设置等操作。
2
.
对悬浮窗进行属性设置等操作。
悬浮窗窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置悬浮窗背景色、亮度等属性。
4
.
加载显示悬浮窗的具体内容。
3
.
加载显示悬浮窗的具体内容。
通过
`setUIContent`
和
`showWindow`
接口加载显示悬浮窗的具体内容。
5
.
销毁悬浮窗。
4
.
销毁悬浮窗。
当不再需要悬浮窗时,可根据具体实现逻辑,使用
`destroyWindow`
接口销毁悬浮窗。
...
...
@@ -334,7 +310,7 @@ import window from '@ohos.window';
export
default
class
EntryAbility
extends
UIAbility
{
onWindowStageCreate
(
windowStage
)
{
//
2.
创建悬浮窗。
//
1.
创建悬浮窗。
let
windowClass
=
null
;
let
config
=
{
name
:
"
floatWindow
"
,
windowType
:
window
.
WindowType
.
TYPE_FLOAT
,
ctx
:
this
.
context
...
...
@@ -346,7 +322,7 @@ export default class EntryAbility extends UIAbility {
}
console
.
info
(
'
Succeeded in creating the floatWindow. Data:
'
+
JSON
.
stringify
(
data
));
windowClass
=
data
;
//
3
.悬浮窗窗口创建成功后,设置悬浮窗的位置、大小及相关属性等。
//
2
.悬浮窗窗口创建成功后,设置悬浮窗的位置、大小及相关属性等。
windowClass
.
moveWindowTo
(
300
,
300
,
(
err
)
=>
{
if
(
err
.
code
)
{
console
.
error
(
'
Failed to move the window. Cause:
'
+
JSON
.
stringify
(
err
));
...
...
@@ -361,14 +337,14 @@ export default class EntryAbility extends UIAbility {
}
console
.
info
(
'
Succeeded in changing the window size.
'
);
});
//
4
.为悬浮窗加载对应的目标页面。
//
3
.为悬浮窗加载对应的目标页面。
windowClass
.
setUIContent
(
"
pages/page4
"
,
(
err
)
=>
{
if
(
err
.
code
)
{
console
.
error
(
'
Failed to load the content. Cause:
'
+
JSON
.
stringify
(
err
));
return
;
}
console
.
info
(
'
Succeeded in loading the content.
'
);
//
4
.显示悬浮窗。
//
3
.显示悬浮窗。
windowClass
.
showWindow
((
err
)
=>
{
if
(
err
.
code
)
{
console
.
error
(
'
Failed to show the window. Cause:
'
+
JSON
.
stringify
(
err
));
...
...
@@ -377,7 +353,7 @@ export default class EntryAbility extends UIAbility {
console
.
info
(
'
Succeeded in showing the window.
'
);
});
});
//
5
.销毁悬浮窗。当不再需要悬浮窗时,可根据具体实现逻辑,使用destroy对其进行销毁。
//
4
.销毁悬浮窗。当不再需要悬浮窗时,可根据具体实现逻辑,使用destroy对其进行销毁。
windowClass
.
destroyWindow
((
err
)
=>
{
if
(
err
.
code
)
{
console
.
error
(
'
Failed to destroy the window. Cause:
'
+
JSON
.
stringify
(
err
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录