| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 17 天前 | ||
| 3 个月前 | ||
| 17 天前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 |
ArkTS 标准悬浮窗(FloatView)
介绍
标准悬浮窗是一种在设备屏幕上显示的悬浮窗口形态,可用于展示关键内容并支持跨应用场景下的持续交互。
本示例演示三种模式:
- 仅创建标准悬浮窗(Plain 模式)。
- 标准悬浮窗与闪控球绑定创建(Advanced 模式)。
- 标准悬浮窗结合防窥保护(AntiPeep 模式)。
从 API version 20 开始,支持使用标准悬浮窗能力。防窥保护依赖设备安全能力 SystemCapability.Security.DlpAntiPeep。
默认入口页面为 pages/Index_antipeep。如需体验 Plain / Advanced 模式,可在 EntryAbility.ets 中将 loadContent 切换为对应页面。
使用说明
Plain / Advanced 模式
- 点击【请求权限】申请
ohos.permission.FLOAT_VIEW权限。 - 点击【创建窗】创建标准悬浮窗:
- 当前状态为“绑定”时,创建标准悬浮窗并绑定闪控球。
- 当前状态为“解绑”时,仅创建标准悬浮窗。
- 点击【绑定】可将状态切换为绑定模式。
- 点击【解绑】可解除标准悬浮窗与闪控球绑定关系。
- 点击【删除球/窗】可关闭标准悬浮窗并删除闪控球。
AntiPeep 模式
- 应用启动时自动检测设备是否支持防窥保护,以及系统防窥开关是否打开;设备不支持或开关未打开时会提示。
- 点击【请求权限】申请
ohos.permission.FLOAT_VIEW权限。 - 点击【创建标准悬浮窗】创建并启动标准悬浮窗。
- 当防窥状态变为 HIDE 时,应用会对主窗口设置防窥遮罩层(
setAntiPeepMaskLayer)。 - 点击【删除标准悬浮窗】关闭标准悬浮窗。
工程目录
entry/src/
├── main
│ ├── ets
│ │ ├── entryability
│ │ │ ├── EntryAbility.ets // 应用入口能力(按需切换示例页面)
│ │ ├── pages
│ │ │ ├── Index_plain.ets // 标准悬浮窗基础示例
│ │ │ ├── Index_advanced.ets // 标准悬浮窗与闪控球绑定示例
│ │ │ ├── Index_antipeep.ets // 标准悬浮窗与防窥保护示例
│ │ │ ├── FloatViewPage.ets // 标准悬浮窗内容页面
│ ├── module.json5
│ └── resources // 静态资源
├── ohosTest
│ ├── ets
│ │ ├── test
│ │ │ ├── Ability.test.ets // 自动化测试代码
│ │ │ ├── List.test.ets // 测试套件入口
相关权限
基于安全考虑,应用需要申请以下权限:
ohos.permission.FLOAT_VIEW:创建标准悬浮窗ohos.permission.USE_FLOAT_BALL:使用闪控球(Advanced 模式)ohos.permission.DLP_GET_HIDE_STATUS:获取防窥保护状态(AntiPeep 模式)
权限获取与签名可以参考官方文档:配置调试签名
依赖
不涉及
约束与限制
- 本示例仅支持标准系统上运行,支持设备:华为手机、平板。
- 本示例为 Stage 模型,支持 API Version 20 及以上版本 SDK。
- 本示例需要使用 DevEco Studio 6.0.0 Release 及以上版本才可编译运行。
- 防窥保护能力仅在支持
SystemCapability.Security.DlpAntiPeep的设备上可用,且需在系统中打开防窥开关。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo ArkUISample/FloatView > .git/info/sparse-checkout
git remote add origin https://gitcode.com/harmonyos_samples/guide-snippets.git
git pull origin master