2024年3月27日发(作者:)

鸿蒙系统系统剪贴板服务

用户通过系统剪贴板服务,可实现应用之间的简单数据传递。

例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。

(1)HarmonyOS提供了系统剪贴板服务的操作接口,支持用户

程序从系统剪贴板中读取、写入和查询剪贴板数据,以及添加、移

除系统剪贴板数据变化的回调。

(2)HarmonyOS提供了剪贴板数据的对象定义,包含内容对象

和属性对象。

1.场景说明

同一设备的应用程序A、B之间可以借助系统剪贴板服务完成简

单数据的传递,即应用程序A向剪贴板服务写入数据后,应用程序B

可以从中读取数据,如图3-89所示。

图3-89 剪贴板服务示意图

在使用剪贴板服务时,需要注意以下几点:

(1)只有在前台获取焦点的应用才有读取系统剪贴板的权限,

但系统默认输入法应用除外。

(2)写入剪贴板服务中的剪贴板数据不会随应用程序结束而被

销毁。

(3)对同一用户而言,写入剪贴板服务的数据会被下一次写入

的剪贴板数据所覆盖。

(4)在同一设备内,剪贴板单次传递内容不应超过800KB。

2.接口说明

SystemPasteboard提供了系统剪贴板操作的相关接口,例如复

制、粘贴、配置回调等。PasteData是剪贴板服务操作的数据对象,

一个PasteData由若干个内容节点(PasteData. Record)和一个属

性集合对象(operty)组成。Record是存放剪贴

板数据信息的最小单位,每个Record都有其特定的MIME类型,如纯

文本、HTML、URI、Intent等。剪贴板数据的属性信息存放在

DataProperty中,包括标签、时间戳等。

3.SystemPasteboard

SystemPasteboard提供了系统剪贴板服务的操作接口,例如复

制、粘贴、配置回调等,如表3-11所示。

表3-11 SystemPasteboard提供系统剪贴板操作的相关接口

4.开发步骤

应用A获取系统剪贴板服务,代码如下:

应用A向系统剪贴板中写入一条纯文本数据,代码如下:

应用B从系统剪贴板读取数据,并将数据对象中的首个文本类

型(纯文本/HTML)内容信息在控件中显示,但忽略其他类型内容,

如代码示例3-61所示。

代码示例3-61 应用B从系统剪贴板读取数据

应用C注册添加系统剪贴板数据变化回调,当系统剪贴板数据

发生变化时触发处理逻辑,如代码示例3-62所示。

代码示例3-62 应用C注册添加系统剪贴板数据变化回调