目录

HarmonyOS实战开发-如何实现窗口沉浸式和小窗口等功能

HarmonyOS实战开发-如何实现窗口沉浸式和小窗口等功能。

介绍

本示例展示了

1.在应用主窗口中创建和拉起子窗口,并对子窗口设置窗口相关属性,以及设置窗口规避区域、窗口沉浸式和小窗口等功能。

2.在应用中获取系统栏的属性

3.在应用中设置窗口可触摸区域

本示例使用窗口管理

效果预览

https://i-blog.csdnimg.cn/blog_migrate/81c80770e8552af2e5d6285275993c2c.png

窗口视频-使用说明:

1.启动应用,点击窗口视频跳转到播放页。

2.点击视频屏幕可以拉起小窗口播放视频,小窗口可以拖拽,再次点击视频可以关闭小窗口。

3.点击全屏播放并切换窗口方向按钮可以全屏播放视频并且改变窗口方向。

4.点击视频屏幕拉起小窗口播放视频, 界面显示小窗口状态为“获焦状态”; 再次点击视频关闭小窗口, 界面显示小窗口状态为“失焦状态”

5.点击视频屏幕拉起小窗口视频,再点击小窗口中的“拉起悬浮应用”按钮,成功拉起WindowRatio悬浮应用

获取系统栏属性-使用说明:

1.启动应用,点击获取系统状态栏属性页

2.点击获取系统状态栏属性,展示系统状态栏相关属性到页面

设置窗口可触摸区域-使用说明:

1.启动应用,点击获取设置窗口可触摸区域页

2.页面启动时,将窗口上25%高度区域(区域1)和最下25%高度区域(区域4)设置为可以触摸区域,其它区域不可触摸

3.可以点击区域1和区域4可以触发点击事件并使用ShowToast显示点击的区域信息,其它区域则无法触发事件

工程目录

entry/src/main/ets/
|---Application
|   |---MyAbilityStage.ts                   
|---MainAbility
|   |---MainAbility.ts                    
|---pages
|   |---Index.ets                      // 首页
|   |---SubWindowPage.ets              // 全屏播放
|   |---Video.ets                      // 视频播放
|---system_bar
|   |---pages
|   |   |---GetPropertiesOfSystemBar.ets //获取系统状态栏属性
|---touchable
|   |---pages
|   |   |---SetTouchableAreas.ets       //设置可触摸区域
|---utils
|   |---Logger.ets                      //日志工具类

具体实现

  • 本示例主要分为五个模块

  • 首页入口模块

  • 使用WindowStage实例化一个窗口,引入WindowManger方法设置一个主窗口与子窗口

  • 窗口视频模块

  • 这里用到依赖window-components中WindowComponent方法来进行视频的播放

  • 全屏播放窗口并切换窗口方向模块

  • 通过EventPriority方法表示事件被发送的优先级,emitter.emit方法发送指定的事件进行全屏播放和切换窗口方向

  • 获取系统状态栏属性页

  • 通过Button触发当前window.getWindowSystemBarProperties()方法,通过Text组件展示到界面

  • 设置窗口可触摸区域页

  • 通过window.setTouchableAreas(rects:

    Array)方法,设置窗口内的可触摸区域,通过4个区域内的Text组件的点击事件触发,来展示对窗口触摸区域的限制

相关权限

本示例需要在module.json5中配置如下权限:

允许应用使用悬浮窗的能力:ohos.permission.SYSTEM_FLOAT_WINDOW

依赖

本示例需要依赖窗口比例 sample,本示例点击“拉起悬浮应用”按钮之后会以悬浮窗模式拉起窗口比例 sample。

约束与限制

1.本示例仅支持标准系统上运行,支持设备:RK3568;

2.本示例不支持release版本,仅支持master版本,当前software version为OpenHarmony 5.0.0.19

3.本示例仅支持API12版本SDK,版本号:5.0.0.19,本涉及涉及使用系统接口:window.setTouchableAreas(rects: Array): void;,需要手动替换Full SDK才能编译通过

4.本示例需要使用DevEco Studio 版本号(Build Version: 4.1.3.500, built on January 20, 2024)及以上版本才可编译运行。

5.本示例所配置的权限ohos.permission.SYSTEM_FLOAT_WINDOW为system_basic级别( 相关权限级别可通过权限定义列表 查看)

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/BasicFeature/WindowManagement/WindowManage/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程

https://i-blog.csdnimg.cn/blog_migrate/aea1e6c141bc8c99ab42da227c42faf8.png

https://i-blog.csdnimg.cn/blog_migrate/75c6c8de2261b1536ee2ac285b9fcadc.png

鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→

https://i-blog.csdnimg.cn/blog_migrate/814deef583460c5a36ff7e3c9fa251c2.png

鸿蒙 (Harmony OS)开发学习手册

一、入门必看→

1.应用开发导读(ArkTS)

2………

https://i-blog.csdnimg.cn/blog_migrate/fe5d05c2054be077a99f779cd8fe6b4c.png

二、HarmonyOS 概念→

1.系统定义

2.技术架构

3.技术特性

4.系统安全

5.… https://i-blog.csdnimg.cn/blog_migrate/e3fefac51cd81c75e883b7cece34009c.png

三、如何快速入门?→

1.基本概念

2.构建第一个ArkTS应用

3……… https://i-blog.csdnimg.cn/blog_migrate/87796dae90a8e892b42709fd56e26af8.png

四、开发基础知识→

1.应用基础知识

2.配置文件

3.应用数据管理

4.应用安全管理

5.应用隐私保护

6.三方应用调用管控机制

7.资源分类与访问

8.学习ArkTS语言

9.…… https://i-blog.csdnimg.cn/blog_migrate/530d30151c2e24e9cca6beff6671aa87.png

五、基于ArkTS 开发→

1.Ability开发

2.UI开发

3.公共事件与通知

4.窗口管理

5.媒体

6.安全

7.网络与链接

8.电话服务

9.数据管理

10.后台任务(Background Task)管理

11.设备管理

12.设备使用信息统计

13.DFX

14.国际化开发

15.折叠屏系列

16.…… https://i-blog.csdnimg.cn/blog_migrate/1b88cc622a7358efc0004b6db5a00aac.png

更多了解更多鸿蒙开发的相关知识可以参考: