Pasteboard
概述
系统剪贴板支持复制和粘贴多种类型的数据。 可以使用此模块接口操作纯文本、HTML、URI、像素图片等其他类型的数据。
起始版本: 13
汇总
文件
| 名称 | 描述 |
|---|---|
| oh_pasteboard.h | 提供访问系统剪贴板的接口、数据结构、枚举类型。 |
| oh_pasteboard_err_code.h | 声明剪贴板框架错误码信息。 |
类型定义
| 名称 | 描述 |
|---|---|
| typedef enum Pasteboard_NotifyType Pasteboard_NotifyType | 剪贴板的数据变更类型。 |
| typedef void(* Pasteboard_Notify) (void *context, Pasteboard_NotifyType type) | 定义剪贴板内容变更时触发的回调函数。 |
| typedef void(* Pasteboard_Finalize) (void *context) | 定义用于释放上下文的回调函数,剪贴板数据变更观察者对象销毁时触发。 |
| typedef struct OH_PasteboardObserver OH_PasteboardObserver | 定义剪贴板数据变更观察者。 |
| typedef struct OH_Pasteboard OH_Pasteboard | 定义剪贴板对象,用以操作系统剪贴板。 |
| typedef enum PASTEBOARD_ErrCode PASTEBOARD_ErrCode | 错误码信息。 |
枚举
| 名称 | 描述 |
|---|---|
| Pasteboard_NotifyType { NOTIFY_LOCAL_DATA_CHANGE = 1, NOTIFY_REMOTE_DATA_CHANGE = 2 } | 剪贴板的数据变更类型。 |
| PASTEBOARD_ErrCode { ERR_OK = 0, ERR_PERMISSION_ERROR = 201, ERR_INVALID_PARAMETER = 401, ERR_DEVICE_NOT_SUPPORTED = 801, ERR_INNER_ERROR = 12900000, ERR_BUSY = 12900003 } |
错误码信息。 |
函数
| 名称 | 描述 |
|---|---|
| OH_PasteboardObserver * OH_PasteboardObserver_Create () | 创建一个剪贴板数据变更观察者OH_PasteboardObserver指针及实例对象。 |
| int OH_PasteboardObserver_Destroy (OH_PasteboardObserver *observer) | 销毁剪贴板数据变更观察者OH_PasteboardObserver指针指向的实例对象。 |
| int OH_PasteboardObserver_SetData (OH_PasteboardObserver *observer, void *context, const Pasteboard_Notify callback, const Pasteboard_Finalize finalize) | 向剪贴板数据变更观察者设置回调函数。 |
| OH_Pasteboard * OH_Pasteboard_Create () | 创建剪贴板OH_Pasteboard指针及实例对象。 |
| void OH_Pasteboard_Destroy (OH_Pasteboard *pasteboard) | 销毁剪贴板OH_Pasteboard实例对象。 |
| int OH_Pasteboard_Subscribe (OH_Pasteboard *pasteboard, int type, const OH_PasteboardObserver *observer) | 订阅剪贴板的数据变更事件。 |
| int OH_Pasteboard_Unsubscribe (OH_Pasteboard *pasteboard, int type, const OH_PasteboardObserver *observer) | 取消对剪贴板数据变更事件的订阅。 |
| bool OH_Pasteboard_IsRemoteData (OH_Pasteboard *pasteboard) | 判断剪贴板中的数据是否来自远端设备。 |
| int OH_Pasteboard_GetDataSource (OH_Pasteboard *pasteboard, char *source, unsigned int len) | 获取剪贴板中数据的数据源。 |
| bool OH_Pasteboard_HasType (OH_Pasteboard *pasteboard, const char *type) | 判断剪贴板中是否有指定类型的数据。 |
| bool OH_Pasteboard_HasData (OH_Pasteboard *pasteboard) | 判断剪贴板中是否有数据。 |
| OH_UdmfData * OH_Pasteboard_GetData (OH_Pasteboard *pasteboard, int *status) | 获取剪贴板中的数据。 |
| int OH_Pasteboard_SetData (OH_Pasteboard *pasteboard, OH_UdmfData *data) | 将统一数据对象数据写入剪贴板。 |
| int OH_Pasteboard_ClearData (OH_Pasteboard *pasteboard) | 清空剪贴板中的数据。 |
| char ** OH_Pasteboard_GetMimeTypes (OH_Pasteboard *pasteboard, unsigned int *count) | 获取剪切板中的MIME类型。 |
类型定义说明
OH_Pasteboard
typedef struct OH_Pasteboard OH_Pasteboard
描述:
定义剪贴板对象,用以操作系统剪贴板。
起始版本: 13
OH_PasteboardObserver
typedef struct OH_PasteboardObserver OH_PasteboardObserver
描述:
定义剪贴板数据变更观察者。
起始版本: 13
PASTEBOARD_ErrCode
typedef enum PASTEBOARD_ErrCode PASTEBOARD_ErrCode
描述:
错误码信息。
起始版本: 13
Pasteboard_Finalize
typedef void(* Pasteboard_Finalize) (void *context)
描述:
定义用于释放上下文的回调函数,剪贴板数据变更观察者对象销毁时触发。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| context | 要释放的上下文指针。 |
Pasteboard_Notify
typedef void(* Pasteboard_Notify) (void *context, Pasteboard_NotifyType type)
描述:
定义剪贴板内容变更时触发的回调函数。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| context | 上下文信息,由函数OH_PasteboardObserver_SetData传入。 |
| type | 数据变更的类型。详见:Pasteboard_NotifyType。 |
Pasteboard_NotifyType
typedef enum Pasteboard_NotifyType Pasteboard_NotifyType
描述:
剪贴板的数据变更类型。
起始版本: 13
枚举类型说明
PASTEBOARD_ErrCode
enum PASTEBOARD_ErrCode
描述:
错误码信息。
起始版本: 13
| 枚举值 | 描述 |
|---|---|
| ERR_OK | 执行成功。 |
| ERR_PERMISSION_ERROR | 权限校验失败。 |
| ERR_INVALID_PARAMETER | 非法参数。 |
| ERR_DEVICE_NOT_SUPPORTED | 设备能力不支持。 |
| ERR_INNER_ERROR | 内部错误。 |
| ERR_BUSY | 系统忙。 |
Pasteboard_NotifyType
enum Pasteboard_NotifyType
描述:
剪贴板的数据变更类型。
起始版本: 13
| 枚举值 | 描述 |
|---|---|
| NOTIFY_LOCAL_DATA_CHANGE | 本地设备剪贴板数据变更。 |
| NOTIFY_REMOTE_DATA_CHANGE | 组网内的非本地设备剪贴板数据变更。 |
函数说明
OH_Pasteboard_ClearData()
int OH_Pasteboard_ClearData (OH_Pasteboard * pasteboard)
描述:
清空剪贴板中的数据。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
返回:
返回执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
参见:
OH_Pasteboard_Create()
OH_Pasteboard* OH_Pasteboard_Create ()
描述:
创建剪贴板OH_Pasteboard指针及实例对象。
起始版本: 13
返回:
执行成功则返回一个指向剪贴板OH_Pasteboard实例对象的指针,否则返回nulllptr。
参见:
OH_Pasteboard_Destroy()
void OH_Pasteboard_Destroy (OH_Pasteboard * pasteboard)
描述:
销毁剪贴板OH_Pasteboard实例对象。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
参见:
OH_Pasteboard_GetData()
OH_UdmfData* OH_Pasteboard_GetData (OH_Pasteboard * pasteboard, int * status )
描述:
获取剪贴板中的数据。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
| status | 该参数是输出参数,表示执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 |
返回:
执行成功时返回统一数据对象OH_UdmfData实例的指针。否则返回空指针。
参见:
OH_UdmfData
OH_Pasteboard_GetDataSource()
int OH_Pasteboard_GetDataSource (OH_Pasteboard * pasteboard, char * source, unsigned int len )
描述:
获取剪贴板中数据的数据源。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
| source | 该参数是输出参数,表示剪贴板中数据的数据源字符串。 |
| len | 该参数是输出参数,表示数据源字符串的长度。 |
返回:
返回执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
参见:
OH_Pasteboard_HasData()
bool OH_Pasteboard_HasData (OH_Pasteboard * pasteboard)
描述:
判断剪贴板中是否有数据。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
返回:
返回剪贴板中是否有数据。返回true表示剪贴板中有数据,返回false表示剪贴板中没有数据。
参见:
OH_Pasteboard_HasType()
bool OH_Pasteboard_HasType (OH_Pasteboard * pasteboard, const char * type )
描述:
判断剪贴板中是否有指定类型的数据。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
| type | 表示要检查的数据类型。 |
返回:
返回剪贴板中是否有指定类型的数据。返回true表示剪贴板中包含指定类型的数据,返回false表示剪贴板中没有指定类型的数据。
参见:
OH_Pasteboard_IsRemoteData()
bool OH_Pasteboard_IsRemoteData (OH_Pasteboard * pasteboard)
描述:
判断剪贴板中的数据是否来自远端设备。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
返回:
返回剪贴板中的数据是否来自远端设备。返回true表示剪贴板中的数据来自远端设备,返回false表示剪贴板中数据来自本端设备。
参见:
OH_Pasteboard_SetData()
int OH_Pasteboard_SetData (OH_Pasteboard * pasteboard, OH_UdmfData * data )
描述:
将统一数据对象数据写入剪贴板。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
| data | 表示指向统一数据对象OH_UdmfData实例的指针。 |
返回:
返回执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
参见:
OH_UdmfData
OH_Pasteboard_Subscribe()
int OH_Pasteboard_Subscribe (OH_Pasteboard * pasteboard, int type, const OH_PasteboardObserver * observer )
描述:
订阅剪贴板的数据变更事件。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
| type | 表示订阅的剪贴板数据变更类型,详见:Pasteboard_NotifyType。 |
| observer | 表示指向剪贴板数据变更观察者OH_PasteboardObserver实例的指针。 它指定了剪贴板数据变更时触发的回调函数,详见:OH_PasteboardObserver。 |
返回:
返回执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
参见:
OH_Pasteboard_Unsubscribe()
int OH_Pasteboard_Unsubscribe (OH_Pasteboard * pasteboard, int type, const OH_PasteboardObserver * observer )
描述:
取消对剪贴板数据变更事件的订阅。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
| type | 表示订阅的剪贴板数据变更类型,详见:Pasteboard_NotifyType。 |
| observer | 表示指向剪贴板数据变更观察者OH_PasteboardObserver实例的指针。 它指定了剪贴板数据变更时触发的回调函数,详见:OH_PasteboardObserver。 |
返回:
返回执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
参见:
OH_PasteboardObserver_Create()
OH_PasteboardObserver* OH_PasteboardObserver_Create ()
描述:
创建一个剪贴板数据变更观察者OH_PasteboardObserver指针及实例对象。
起始版本: 13
返回:
执行成功时返回一个指向剪贴板数据变更观察者OH_PasteboardObserver实例对象的指针,否则返回空指针。 当不再需要使用指针时,请使用OH_PasteboardObserver_Destroy销毁实例对象,否则会导致内存泄漏。
参见:
OH_PasteboardObserver_Destroy()
int OH_PasteboardObserver_Destroy (OH_PasteboardObserver * observer)
描述:
销毁剪贴板数据变更观察者OH_PasteboardObserver指针指向的实例对象。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| observer | 表示指向剪贴板数据变更观察者OH_PasteboardObserver实例的指针。 |
返回:
返回执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
参见:
OH_PasteboardObserver_SetData()
int OH_PasteboardObserver_SetData (OH_PasteboardObserver * observer, void * context, const Pasteboard_Notify callback, const Pasteboard_Finalize finalize )
描述:
向剪贴板数据变更观察者设置回调函数。
起始版本: 13
参数:
| 名称 | 描述 |
|---|---|
| observer | 表示指向剪贴板数据变更观察者OH_PasteboardObserver实例的指针。 |
| context | 表示指向上下文数据的指针,将作为第一个参数传入Pasteboard_Notify。 |
| callback | 表示数据变更回调函数。详见:Pasteboard_Notify。 |
| finalize | 表示可选的回调函数,可以用于剪贴板数据变更观察者销毁时释放上下文数据。详见:Pasteboard_Finalize。 |
返回:
返回执行的错误码。错误码定义详见PASTEBOARD_ErrCode。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
参见:
OH_Pasteboard_GetMimeTypes()
char ** OH_Pasteboard_GetMimeTypes (OH_Pasteboard * pasteboard, unsigned int * count)
描述:
获取剪切板中的MIME类型。
起始版本: 14
参数:
| 名称 | 描述 |
|---|---|
| pasteboard | 表示指向剪贴板OH_Pasteboard实例的指针。 |
| count | 该参数是输出参数,结果集中的类型数量会写入该变量。 |
返回:
执行成功时返回剪切板所有内容的MIME类型,否则返回nullptr。
本接口返回对象的生命周期由入参对象pasteboard管理,应用调用OH_Pasteboard_Destroy销毁入参对象pasteboard时同步释放本接口返回的结果,不允许应用主动释放。
入参对象pasteboard只保存本接口最新返回的结果,接口历史调用获得的结果将失效。
参见: