文件最后提交记录最后更新时间
3 个月前
17 天前
3 个月前
17 天前
2 个月前
3 个月前
3 个月前
3 个月前
2 个月前
README

ArkTS 标准悬浮窗(FloatView)

介绍

标准悬浮窗是一种在设备屏幕上显示的悬浮窗口形态,可用于展示关键内容并支持跨应用场景下的持续交互。

本示例演示三种模式:

  1. 仅创建标准悬浮窗(Plain 模式)。
  2. 标准悬浮窗与闪控球绑定创建(Advanced 模式)。
  3. 标准悬浮窗结合防窥保护(AntiPeep 模式)。

从 API version 20 开始,支持使用标准悬浮窗能力。防窥保护依赖设备安全能力 SystemCapability.Security.DlpAntiPeep

默认入口页面为 pages/Index_antipeep。如需体验 Plain / Advanced 模式,可在 EntryAbility.ets 中将 loadContent 切换为对应页面。

使用说明

Plain / Advanced 模式

  1. 点击【请求权限】申请 ohos.permission.FLOAT_VIEW 权限。
  2. 点击【创建窗】创建标准悬浮窗:
    • 当前状态为“绑定”时,创建标准悬浮窗并绑定闪控球。
    • 当前状态为“解绑”时,仅创建标准悬浮窗。
  3. 点击【绑定】可将状态切换为绑定模式。
  4. 点击【解绑】可解除标准悬浮窗与闪控球绑定关系。
  5. 点击【删除球/窗】可关闭标准悬浮窗并删除闪控球。

AntiPeep 模式

  1. 应用启动时自动检测设备是否支持防窥保护,以及系统防窥开关是否打开;设备不支持或开关未打开时会提示。
  2. 点击【请求权限】申请 ohos.permission.FLOAT_VIEW 权限。
  3. 点击【创建标准悬浮窗】创建并启动标准悬浮窗。
  4. 当防窥状态变为 HIDE 时,应用会对主窗口设置防窥遮罩层(setAntiPeepMaskLayer)。
  5. 点击【删除标准悬浮窗】关闭标准悬浮窗。

工程目录

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 模式)

权限获取与签名可以参考官方文档:配置调试签名

依赖

不涉及

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:华为手机、平板。
  2. 本示例为 Stage 模型,支持 API Version 20 及以上版本 SDK。
  3. 本示例需要使用 DevEco Studio 6.0.0 Release 及以上版本才可编译运行。
  4. 防窥保护能力仅在支持 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