智慧多窗是一种多任务处理解决方案,它允许用户在同一时间、同一屏幕上以悬浮窗或分屏的方式同时运行多个应用窗口。在智慧多窗的显示模式下,用户可以根据自己的需求,合理安排应用窗口的位置和大小。
悬浮窗
悬浮窗是一种在设备屏幕上悬浮的、非全屏的应用窗口。一般用于在已有全屏任务运行的基础上,临时处理另一个任务,或短时间多任务并行使用。如浏览网页的同时回复消息。
针对手机,一个屏幕内最多支持显示一个悬浮窗;在折叠屏手机展开态、平板类设备上,一个屏幕内最多支持显示两个悬浮窗。在超出悬浮窗显示最大个数限制时,打开新的悬浮窗会替换最近久未操作的悬浮窗。
悬浮窗的类型
悬浮窗的常见类型主要分为如下两种:
- 竖向悬浮窗:一般用于新闻资讯、社交以及购物类应用等场景。
- 横向悬浮窗:主要用于横向游戏和视频全屏播放的场景。
悬浮窗的触发及恢复方式
悬浮窗的触发方式有以下两种:
- 手势触发:应用全屏时从屏幕底部向上滑至右上方热区,松手后可开启悬浮窗模式。
- 通知消息下拉触发:在系统接收到通知消息未收起时,可直接下拉此通知消息开启悬浮窗模式。
悬浮窗的恢复方式主要有以下两种:
- 多任务中心中恢复:对于已开启悬浮窗模式的应用,在进入多任务中心时,悬浮窗应用同全屏应用一起显示在多任务中心,用户选择点击悬浮窗应用卡片时可恢复悬浮窗模式。
- 侧边条恢复:对于已开启悬浮窗模式的应用,其最小化后会暂存在屏幕上的侧边条中,点击或者长按侧边条可展开任务选择界面,选择点击侧边条中悬浮窗应用卡片时可恢复悬浮窗模式。
分屏
分屏一般用于两个应用长时间并行使用的场景。例如边看购物攻略、边浏览商品;边看视频、边玩游戏;看学习类视频的同时做笔记等。
分屏的触发方式
分屏通过手势触发:应用全屏时,从屏幕底部向上滑至左上方热区,进入待分屏状态,点击桌面另一个支持分屏的应用图标或卡片,可形成分屏。
应用声明支持智慧多窗
当应用需要智慧多窗的能力时,可以通过在 module.json5配置文件 中对应标签添加相关字段声明支持。
声明支持悬浮窗
开发者可以通过在module.json5配置文件中 abilities标签 下的supportWindowMode属性增加“floating”字段或使用默认值以声明应用支持悬浮窗。
supportWindowMode属性主要标识当前UIAbility所支持的窗口模式,支持的字段及含义如下表所示。
字段 | 说明 |
---|---|
fullscreen | 窗口支持全屏显示。 |
split | 窗口支持分屏显示。 |
floating | 支持悬浮窗显示。 |
在应用声明支持智慧多窗后,还可根据业务场景的需要配置是否支持横向悬浮窗或上下分屏模式。
当应用需要支持横向悬浮窗时,开发者可以通过在module.json5配置文件中abilities标签下的preferMultiWindowOrientation属性增加“landscape”或者“landscape_auto”配合API以声明应用支持横向悬浮窗或上下分屏模式。
preferMultiWindowOrientation属性主要标识当前UIAbility组件多窗布局方向,支持的字段及含义如下表所示。
配置值 | 说明 | 效果 |
---|---|---|
portrait | 多窗布局方向为竖向。建议竖向游戏类应用配置。 | 手机 手势触发悬浮窗:竖向悬浮窗 手势触发分屏:不支持 分屏样式切换:不涉及 折叠屏手机展开态 手势触发悬浮窗:竖向悬浮窗 手势触发分屏:形成左右分屏 分屏样式切换:不支持样式切换 |
landscape | 多窗布局方向为横向,配置后支持横向悬浮窗和上下分屏。建议横向游戏类应用配置。 | 手机 手势触发悬浮窗:横向悬浮窗 手势触发分屏:不支持 分屏样式切换:不涉及 折叠屏手机展开态 手势触发悬浮窗:横向悬浮窗 手势触发分屏:形成上下分屏 分屏样式切换:不支持样式切换 |
landscape_ |