目录

如何实现全局悬浮窗功能

问题现象

在购物比价、搜题或抢单等应用场景中。需要将应用的特定功能切换为小窗模式,此时用户可以进行其他界面或者其他应用的操作,提升使用体验。

背景知识

解决方案

方案

优缺点

适用场景

方案一:通过普通子窗口实现。

实现简单,不需要申请特殊权限,只能实现应用内悬浮窗。

该方案适用于应用内的全局悬浮窗。

方案二:通过系统提供的悬浮窗实现。

需要申请ohos.permission.SYSTEM_FLOAT_WINDOW权限,多人视频通话、屏幕共享特殊场景与功能可申请该权限。

该方案适用于应用全局悬浮窗,应用进入后台,悬浮窗显示在桌面上,如多人视频通话、屏幕共享。

方案三:通过多UIAbility实现。

需申请ohos.permission.WINDOW_TOPMOST权限,目前仅PC/2in1支持。

该方案适用于应用全局悬浮窗,应用进入后台,悬浮窗显示在桌面上。

方案四:通过闪控球实现。

需申请ohos.permission.USE_FLOAT_BALL权限,特殊场景与功能可申请该权限,且需要API20及以上才可使用。

该方案适用于应用全局悬浮窗,如跨应用的题目搜索、账单记录、商品比价、翻译等。