harmony 鸿蒙@ohos.pasteboard (剪贴板)
@ohos.pasteboard (剪贴板)
本模块提供管理系统剪贴板的能力,支持系统复制、粘贴功能。系统剪贴板支持对文本、HTML、URI、Want、PixelMap等内容的操作。
说明:
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import { pasteboard } from '@kit.BasicServicesKit';
常量
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 类型 | 值 | 说明 |
---|---|---|---|
MAX_RECORD_NUM7+ | number | - | API version 10之前,此常量值为512,表示单个PasteData中所能包含的最大条目数为512。当剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。 从API version 10开始,不再限制单个PasteData中所能包含的最大条目数。 |
MIMETYPE_TEXT_HTML7+ | string | ‘text/html’ | HTML内容的MIME类型定义。 |
MIMETYPE_TEXT_WANT7+ | string | ‘text/want’ | Want内容的MIME类型定义。 |
MIMETYPE_TEXT_PLAIN7+ | string | ‘text/plain’ | 纯文本内容的MIME类型定义。 |
MIMETYPE_TEXT_URI7+ | string | ‘text/uri’ | URI内容的MIME类型定义。 |
MIMETYPE_PIXELMAP9+ | string | ‘pixelMap’ | PixelMap内容的MIME类型定义。 |
ValueType9+
type ValueType = string|image.PixelMap|Want|ArrayBuffer
用于表示允许的数据字段类型。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
类型 | 说明 |
---|---|
string | 表示string的类型。 |
image.PixelMap | 表示image.PixelMap的类型。 |
Want | 表示Want的类型。 |
ArrayBuffer | 表示ArrayBuffer的类型。 |
pasteboard.createData9+
createData(mimeType: string, value: ValueType): PasteData
构建一个指定类型的剪贴板内容对象。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mimeType | string | 是 | 剪贴板数据对应的MIME类型,可以是常量中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值, mimeType长度不能超过1024字节。 |
value | ValueType | 是 | 自定义数据内容。 |
返回值:
类型 | 说明 |
---|---|
PasteData | 剪贴板内容对象。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
示例1:
let dataXml = new ArrayBuffer(256);
let pasteData: pasteboard.PasteData = pasteboard.createData('app/xml', dataXml);
示例2:
let dataText = 'hello';
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, dataText);
pasteboard.createData14+
createData(data: Record<string, ValueType>): PasteData
构建一个包含多个类型数据的剪贴板内容对象。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | Record<string, ValueType> | 是 | Record的key为剪贴板数据对应的MIME类型。可以是常量中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型。也可以是自定义的MIME类型,可自定义此参数值,mimeType长度不能超过1024字节。 Record的value为key中指定MIME类型对应的数据。 Record中的首个key-value指定的MIME类型,会作为剪贴板内容对象中首个PasteDataRecord的默认MIME类型,非默认类型的数据在粘贴时只能使用getData接口读取。 |
返回值:
类型 | 说明 |
---|---|
PasteData | 剪贴板内容对象。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
示例1:
let pasteData: pasteboard.PasteData = pasteboard.createData({
'text/plain': 'hello',
'app/xml': new ArrayBuffer(256),
});
示例2:
let record: Record<string, pasteboard.ValueType> = {};
record[pasteboard.MIMETYPE_TEXT_PLAIN] = 'hello';
record[pasteboard.MIMETYPE_TEXT_URI] = 'dataability:///com.example.myapplication1/user.txt';
let pasteData: pasteboard.PasteData = pasteboard.createData(record);
pasteboard.createRecord9+
createRecord(mimeType: string, value: ValueType): PasteDataRecord
创建一条指定类型的数据内容条目。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mimeType | string | 是 | 剪贴板数据对应的MIME类型,可以是常量中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值,mimeType长度不能超过1024字节。 |
value | ValueType | 是 | 指定类型对应的数据内容。 |
返回值:
类型 | 说明 |
---|---|
PasteDataRecord | 一条新建的指定类型的数据内容条目。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
示例1:
let dataXml = new ArrayBuffer(256);
let pasteDataRecord: pasteboard.PasteDataRecord = pasteboard.createRecord('app/xml', dataXml);
示例2:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'file://com.example.myapplication1/data/storage/el2/base/files/file.txt');
pasteData.replaceRecord(0, record);
pasteboard.getSystemPasteboard
getSystemPasteboard(): SystemPasteboard
获取系统剪贴板对象。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
SystemPasteboard | 系统剪贴板对象。 |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
ShareOption9+
可粘贴数据的范围类型枚举。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 值 | 说明 |
---|---|---|
INAPP | 0 | 表示仅允许同应用内粘贴。 |
LOCALDEVICE | 1 | 表示允许在任何应用内粘贴。 |
CROSSDEVICE(deprecated) | 2 | 表示允许跨设备在任何应用内粘贴。 从API version 12开始废弃,无替代接口和替代方法。 |
pasteboard.createHtmlData(deprecated)
createHtmlData(htmlText: string): PasteData
构建一个HTML剪贴板内容对象。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
htmlText | string | 是 | HTML内容。 |
返回值:
类型 | 说明 |
---|---|
PasteData | 剪贴板内容对象。 |
示例:
let html = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>HTML-PASTEBOARD_HTML</title>\n" + "</head>\n" + "<body>\n" + " <h1>HEAD</h1>\n" + " <p></p>\n" + "</body>\n" + "</html>";
let pasteData: pasteboard.PasteData = pasteboard.createHtmlData(html);
pasteboard.createWantData(deprecated)
createWantData(want: Want): PasteData
构建一个Want剪贴板内容对象。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | Want | 是 | Want内容。 |
返回值:
类型 | 说明 |
---|---|
PasteData | 剪贴板内容对象。 |
示例:
import { Want } from '@kit.AbilityKit';
let object: Want = {
bundleName: "com.example.aafwk.test",
abilityName: "com.example.aafwk.test.TwoAbility"
};
let pasteData: pasteboard.PasteData = pasteboard.createWantData(object);
pasteboard.createPlainTextData(deprecated)
createPlainTextData(text: string): PasteData
构建一个纯文本剪贴板内容对象。 > 说明: > > 从 API version 6 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
text | string | 是 | 纯文本内容。 |
返回值:
类型 | 说明 |
---|---|
PasteData | 剪贴板内容对象。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
pasteboard.createUriData(deprecated)
createUriData(uri: string): PasteData
构建一个URI剪贴板内容对象。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | URI内容。 |
返回值:
类型 | 说明 |
---|---|
PasteData | 剪贴板内容对象。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createUriData('dataability:///com.example.myapplication1/user.txt');
pasteboard.createHtmlTextRecord(deprecated)
createHtmlTextRecord(htmlText: string): PasteDataRecord
创建一条HTML内容的条目。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
htmlText | string | 是 | HTML内容。 |
返回值:
类型 | 说明 |
---|---|
PasteDataRecord | 一条新建的HTML内容条目。 |
示例:
let html = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>HTML-PASTEBOARD_HTML</title>\n" + "</head>\n" + "<body>\n" + " <h1>HEAD</h1>\n" + " <p></p>\n" + "</body>\n" + "</html>";
let record: pasteboard.PasteDataRecord = pasteboard.createHtmlTextRecord(html);
pasteboard.createWantRecord(deprecated)
createWantRecord(want: Want): PasteDataRecord
创建一条Want内容条目。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | Want | 是 | Want内容。 |
返回值:
类型 | 说明 |
---|---|
PasteDataRecord | 一条新建的Want内容条目。 |
示例:
import { Want } from '@kit.AbilityKit';
let object: Want = {
bundleName: "com.example.aafwk.test",
abilityName: "com.example.aafwk.test.TwoAbility"
};
let record: pasteboard.PasteDataRecord = pasteboard.createWantRecord(object);
pasteboard.createPlainTextRecord(deprecated)
createPlainTextRecord(text: string): PasteDataRecord
创建一条纯文本内容条目。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
text | string | 是 | 纯文本内容。 |
返回值:
类型 | 说明 |
---|---|
PasteDataRecord | 一条新建的纯文本内容条目。 |
示例:
let record: pasteboard.PasteDataRecord = pasteboard.createPlainTextRecord('hello');
pasteboard.createUriRecord(deprecated)
createUriRecord(uri: string): PasteDataRecord
创建一条URI内容的条目。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.createRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | URI内容。 |
返回值:
类型 | 说明 |
---|---|
PasteDataRecord | 一条新建的URI内容条目。 |
示例:
let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
PasteDataProperty7+
定义剪贴板中所有内容条目的属性,包含时间戳、数据类型、粘贴范围以及一些附加数据等,该属性必须通过setProperty方法,才能设置到剪贴板中。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
additions7+ | {[key:string]:object} | 否 | 是 | 设置其他附加属性数据。不支持动态追加属性,只能通过重新赋值的方式修改附加值,具体见相关示例setProperty。 |
mimeTypes7+ | Array<string> | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。 |
tag7+ | string | 否 | 是 | 用户自定义标签。 |
timestamp7+ | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。 |
localOnly7+ | boolean | 否 | 是 | 配置剪贴板内容是否为“仅在本地”,默认值为false。其值会被shareOption属性覆盖,推荐使用ShareOption属性。 |
shareOption9+ | ShareOption | 否 | 是 | 指示剪贴板数据可以粘贴到的范围。 |
FileConflictOptions15+
定义文件拷贝冲突时的选项。
原子化服务API: 从API version 15开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 值 | 说明 |
---|---|---|
OVERWRITE | 0 | 目标路径存在同文件名时覆盖。 |
SKIP | 1 | 目标路径存在同文件名时跳过,若设置SKIP,应用获取到的粘贴数据不包含跳过文件。 |
ProgressIndicator15+
定义进度条指示选项,可选择是否采用系统默认进度显示。
原子化服务API: 从API version 15开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 值 | 说明 |
---|---|---|
NONE | 0 | 不采用系统默认进度显示。 |
DEFAULT | 1 | 采用系统默认进度显示。 |
ProgressInfo15+
定义进度上报的数据结构,且仅当进度指示选项ProgressIndicator设置为NONE时才会上报此信息。
原子化服务API: 从API version 15开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
progress | number | 是 | 否 | 不使用系统提供的进度条时,系统上报拷贝粘贴任务进度百分比。 |
ProgressListener15+
type ProgressListener = (progress: ProgressInfo) => void
定义进度数据变化的订阅函数,当选择不使用系统默认进度显示时,可设置该项获取粘贴过程的进度。
原子化服务API: 从API version 15开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
progress | ProgressInfo | 是 | 定义进度上报的数据结构,且仅当进度指示选项ProgressIndicator设置为NONE时才会上报此信息。 |
ProgressSignal15+
定义进度取消的函数,在粘贴过程中可选择取消任务,且仅当进度指示选项ProgressIndicator设置为NONE时此参数才有意义。
系统能力: SystemCapability.MiscServices.Pasteboard
cancel
cancel(): void
取消正在进行的拷贝粘贴任务。
原子化服务API: 从API version 15开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
示例:
import { BusinessError, pasteboard } from '@kit.BasicServicesKit';
@Entry
@Component
struct PasteboardTest {
build() {
RelativeContainer() {
Column() {
Column() {
Button("Copy txt")
.onClick(async ()=>{
let text = "test";
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, text);
let systemPasteboard = pasteboard.getSystemPasteboard();
await systemPasteboard.setData(pasteData);
let signal = new pasteboard.ProgressSignal;
let ProgressListener = (progress: pasteboard.ProgressInfo) => {
console.log('progressListener success, progress:' + progress.progress);
signal.cancel();
}
let params: pasteboard.GetDataParams = {
destUri: '/data/storage/el2/base/haps/entry/files/dstFile.txt',
fileConflictOptions: pasteboard.FileConflictOptions.OVERWRITE,
progressIndicator: pasteboard.ProgressIndicator.DEFAULT,
progressListener: ProgressListener
};
systemPasteboard.getDataWithProgress(params).then((pasteData: pasteboard.PasteData) => {
console.error('getDataWithProgress succ');
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
})
})
}
}
}
}
}
GetDataParams15+
应用在使用剪贴板提供的文件拷贝能力的情况下需要的参数,包含目标路径、文件冲突选项、进度条类型等。
原子化服务API: 从API version 15开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
destUri | string | 否 | 拷贝文件时目标路径。若不支持文件处理,则不需要设置此参数;若应用涉及复杂文件处理策略或需要区分文件多路径存储,建议不设置此参数,由应用自行完成文件copy处理。 |
fileConflictOptions | FileConflictOptions | 否 | 定义文件拷贝冲突时的选项,默认为OVERWRITE。 |
progressIndicator | ProgressIndicator | 是 | 定义进度条指示选项,可选择是否采用系统默认进度显示。 |
progressListener | ProgressListener | 否 | 定义进度数据变化的订阅函数,当选择不使用系统默认进度显示时,可设置该项获取粘贴过程的进度。 |
progressSignal | ProgressSignal | 否 | 定义进度取消的函数,在粘贴过程中可选择取消任务,且仅当进度指示选项ProgressIndicator设置为NONE时此参数才有意义。 |
PasteDataRecord7+
对于剪贴板中内容记录的抽象定义,称之为条目。剪贴板内容部分由一个或者多个条目构成,例如一条文本内容、一份HTML、一个URI或者一个Want。
属性
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
htmlText7+ | string | 是 | 否 | HTML内容。 |
want7+ | Want | 是 | 否 | Want内容。 |
mimeType7+ | string | 是 | 否 | 默认数据类型。 |
plainText7+ | string | 是 | 否 | 纯文本内容。 |
uri7+ | string | 是 | 否 | URI内容。 |
pixelMap9+ | image.PixelMap | 是 | 否 | PixelMap内容。 |
data9+ | {[mimeType: string]: ArrayBuffer} | 是 | 否 | 自定义数据内容。 |
toPlainText9+
toPlainText(): string
将一个PasteDataRecord中的html、plain、uri内容强制转换为文本内容。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
string | 纯文本内容。 |
示例:
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, '<html>hello<html>');
let text: string = record.toPlainText();
console.info(`Succeeded in converting to text. Text: ${text}`);
addEntry14+
addEntry(type: string, value: ValueType): void
往一个PasteDataRecord中额外添加一种样式的自定义数据。此方式添加的MIME类型都不是Record的默认类型,粘贴时只能使用getData接口读取对应数据。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 剪贴板数据对应的MIME类型,可以是常量中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值,mimeType长度不能超过1024字节。 |
value | ValueType | 是 | 自定义数据内容。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
示例:
let html = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>HTML-PASTEBOARD_HTML</title>\n" + "</head>\n" + "<body>\n" + " <h1>HEAD</h1>\n" + " <p></p>\n" + "</body>\n" + "</html>";
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
getValidTypes14+
getValidTypes(types: Array<string>): Array<string>
根据传入的MIME类型,返回传入的MIME类型和剪贴板中数据的MIME类型的交集。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
types | Array<string> | 是 | MIME类型列表。 |
返回值:
类型 | 说明 |
---|---|
Array<string> | 传入的MIME类型和剪贴板中数据的MIME类型的交集。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
示例:
let html = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>HTML-PASTEBOARD_HTML</title>\n" + "</head>\n" + "<body>\n" + " <h1>HEAD</h1>\n" + " <p></p>\n" + "</body>\n" + "</html>";
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
let types: string[] = record.getValidTypes([
pasteboard.MIMETYPE_TEXT_PLAIN,
pasteboard.MIMETYPE_TEXT_HTML,
pasteboard.MIMETYPE_TEXT_URI,
pasteboard.MIMETYPE_TEXT_WANT,
pasteboard.MIMETYPE_PIXELMAP
]);
getData14+
getData(type: string): Promise<ValueType>
从PasteDataRecord中获取指定MIME类型的自定义数据。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | MIME类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<ValueType> | Promise对象,返回PasteDataRecord中指定MIME类型的自定义数据。 PasteDataRecord中包含多个MIME类型数据时,非PasteDataRecord的默认MIME类型的数据只能通过本接口获取。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let html = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>HTML-PASTEBOARD_HTML</title>\n" + "</head>\n" + "<body>\n" + " <h1>HEAD</h1>\n" + " <p></p>\n" + "</body>\n" + "</html>";
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
record.getData(pasteboard.MIMETYPE_TEXT_PLAIN).then((value: pasteboard.ValueType) => {
let textPlainContent = value as string;
console.info('Success to get text/plain value. value is: ' + textPlainContent);
}).catch((err: BusinessError) => {
console.error('Failed to get text/plain value. Cause: ' + err.message);
});
record.getData(pasteboard.MIMETYPE_TEXT_URI).then((value: pasteboard.ValueType) => {
let uri = value as string;
console.info('Success to get text/uri value. value is: ' + uri);
}).catch((err: BusinessError) => {
console.error('Failed to get text/uri value. Cause: ' + err.message);
});
convertToText(deprecated)
convertToText(callback: AsyncCallback<string>): void
将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用toPlainText替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<string> | 是 | 回调函数,当转换成功,err为undefined,data为强制转换的文本内容;否则返回错误信息。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: Incorrect parameters types. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
record.convertToText((err: BusinessError, data: string) => {
if (err) {
console.error(`Failed to convert to text. Cause: ${err.message}`);
return;
}
console.info(`Succeeded in converting to text. Data: ${data}`);
});
convertToText(deprecated)
convertToText(): Promise<string>
将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用toPlainText替代。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回强制转换的文本内容。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
record.convertToText().then((data: string) => {
console.info(`Succeeded in converting to text. Data: ${data}`);
}).catch((err: BusinessError) => {
console.error(`Failed to convert to text. Cause: ${err.message}`);
});
PasteData
剪贴板内容对象。剪贴板内容包含一个或者多个内容条目(PasteDataRecord)以及属性描述对象(PasteDataProperty)。
在调用PasteData的接口前,需要先通过createData()或getData()获取一个PasteData对象。
系统能力: SystemCapability.MiscServices.Pasteboard
getPrimaryText
getPrimaryText(): string
获取第一条纯文本内容。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
string | 纯文本内容。剪贴板内容对象中没有纯文本内容时,默认返回为undefined。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
});
getPrimaryHtml7+
getPrimaryHtml(): string
获取第一条的HTML内容。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
string | HTML内容。剪贴板内容对象中没有HTML内容时,默认返回为undefined。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
let htmlText: string = pasteData.getPrimaryHtml();
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
});
getPrimaryWant7+
getPrimaryWant(): Want
获取第一条的Want对象内容。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Want | Want对象内容。剪贴板内容对象中没有Want内容时,默认返回为undefined。 |
示例:
import { Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
let want: Want = pasteData.getPrimaryWant();
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
});
getPrimaryUri7+
getPrimaryUri(): string
获取第一条的URI内容。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
string | URI内容。剪贴板内容对象中没有URI内容时,默认返回为undefined。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
let uri: string = pasteData.getPrimaryUri();
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
});
getPrimaryPixelMap9+
getPrimaryPixelMap(): image.PixelMap
获取第一条的PixelMap内容。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
image.PixelMap | PixelMap内容。剪贴板内容对象中没有PixelMap内容时,默认返回为undefined。 |
示例:
import { image } from '@kit.ImageKit';
let buffer = new ArrayBuffer(128);
let realSize: image.Size = { height: 3, width: 5 };
let opt: image.InitializationOptions = {
size: realSize,
pixelFormat: 3,
editable: true,
alphaType: 1,
scaleMode: 1
};
image.createPixelMap(buffer, opt).then((pixelMap: image.PixelMap) => {
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
let PixelMap: image.PixelMap = pasteData.getPrimaryPixelMap();
});
addRecord7+
addRecord(record: PasteDataRecord): void
向当前剪贴板内容中添加一条条目,同时也会将条目类型添加到PasteDataProperty的mimeTypes中。入参均不能为空,否则添加失败。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
record | PasteDataRecord | 是 | 待添加的条目。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
let textRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let html: string = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>HTML-PASTEBOARD_HTML</title>\n" + "</head>\n" + "<body>\n" + " <h1>HEAD</h1>\n" + " <p></p>\n" + "</body>\n" + "</html>";
let htmlRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, html);
pasteData.addRecord(textRecord);
pasteData.addRecord(htmlRecord);
addRecord9+
addRecord(mimeType: string, value: ValueType): void
向当前剪贴板内容中添加一条数据内容条目,同时也会将数据类型添加到PasteDataProperty的mimeTypes中。入参均不能为空,否则添加失败。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mimeType | string | 是 | 数据的MIME类型, 其长度不能超过1024字节。 |
value | ValueType | 是 | 数据内容。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
let dataXml = new ArrayBuffer(256);
pasteData.addRecord('app/xml', dataXml);
getMimeTypes7+
getMimeTypes(): Array<string>
获取剪贴板中PasteDataProperty的mimeTypes列表,当剪贴板内容为空时,返回列表为空。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Array<string> | 剪贴板内容条目的数据类型,非重复的类型列表。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let types: string[] = pasteData.getMimeTypes();
getPrimaryMimeType7+
getPrimaryMimeType(): string
获取剪贴板内容中首个条目的数据类型。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
string | 首个条目的数据类型。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let type: string = pasteData.getPrimaryMimeType();
getProperty7+
getProperty(): PasteDataProperty
获取剪贴板内容的属性描述对象。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
PasteDataProperty | 属性描述对象。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let property: pasteboard.PasteDataProperty = pasteData.getProperty();
setProperty9+
setProperty(property: PasteDataProperty): void
设置剪贴板内容的属性描述对象PasteDataProperty。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
property | PasteDataProperty | 是 | 属性描述对象。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
type AdditionType = Record<string, Record<string, Object>>;
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'application/xml');
let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
prop.shareOption = pasteboard.ShareOption.INAPP;
// 需要注意,不支持对addition进行追加属性的操作,只能通过重新赋值的方式达到追加属性的目的。
prop.additions = { 'TestOne': { 'Test': 123 }, 'TestTwo': { 'Test': 'additions' } } as AdditionType;
prop.tag = 'TestTag';
pasteData.setProperty(prop);
PasteDataProperty的localOnly与shareOption属性互斥,最终结果以shareOption为准,shareOption会影响localOnly的值。
(async () => {
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
prop.shareOption = pasteboard.ShareOption.INAPP;
prop.localOnly = false;
pasteData.setProperty(prop);
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
await systemPasteboard.setData(pasteData).then(async () => {
console.info('Succeeded in setting PasteData.');
await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
prop.localOnly; // true
});
});
prop.shareOption = pasteboard.ShareOption.LOCALDEVICE;
prop.localOnly = false;
pasteData.setProperty(prop);
await systemPasteboard.setData(pasteData).then(async () => {
console.info('Succeeded in setting PasteData.');
await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
prop.localOnly; // true
});
});
})
getRecord9+
getRecord(index: number): PasteDataRecord
获取剪贴板内容中指定下标的条目。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 指定条目的下标。 |
返回值:
类型 | 说明 |
---|---|
PasteDataRecord | 指定下标的条目。 |
错误码:
错误码ID | 错误信息 |
---|---|
12900001 | The index is out of the record. |
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteData.getRecord(0);
getRecordCount7+
getRecordCount(): number
获取剪贴板内容中条目的个数。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
number | 条目的个数。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let count: number = pasteData.getRecordCount();
getTag7+
getTag(): string
获取剪贴板内容中用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
string | 返回用户自定义的标签内容,如果没有设置用户自定义的标签内容,将返回空。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let tag: string = pasteData.getTag();
hasType9+
hasType(mimeType: string): boolean
检查剪贴板内容中是否有指定的MIME数据类型。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mimeType | string | 是 | 待查询的数据类型。可以是常量中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型。 |
返回值:
类型 | 说明 |
---|---|
boolean | 有指定的数据类型返回true,否则返回false。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let hasType: boolean = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN);
removeRecord9+
removeRecord(index: number): void
移除剪贴板内容中指定下标的条目。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 指定的下标。 |
错误码:
错误码ID | 错误信息 |
---|---|
12900001 | The index is out of the record. |
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
pasteData.removeRecord(0);
replaceRecord9+
replaceRecord(index: number, record: PasteDataRecord): void
替换剪贴板内容中指定下标的条目。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 指定的下标。 |
record | PasteDataRecord | 是 | 被替换后的条目数据内容。 |
错误码:
错误码ID | 错误信息 |
---|---|
12900001 | The index is out of the record. |
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'file://com.example.myapplication1/data/storage/el2/base/files/file.txt');
pasteData.replaceRecord(0, record);
pasteStart12+
pasteStart(): void
读取剪贴板数据前,通知剪贴板服务保留跨设备通道。
系统能力: SystemCapability.MiscServices.Pasteboard
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
if (err) {
console.error('Failed to get PasteData. Cause: ' + err.message);
return;
}
pasteData.pasteStart();
console.log(`using data: ${pasteData.getPrimaryText()}`);
pasteData.pasteComplete();
});
pasteComplete12+
pasteComplete(): void
通知剪贴板服务数据使用已完成。
系统能力: SystemCapability.MiscServices.Pasteboard
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
if (err) {
console.error('Failed to get PasteData. Cause: ' + err.message);
return;
}
pasteData.pasteStart();
console.log(`using data: ${pasteData.getPrimaryText()}`);
pasteData.pasteComplete();
});
addHtmlRecord(deprecated)
addHtmlRecord(htmlText: string): void
向当前剪贴板内容中添加一条HTML内容条目,并将MIMETYPE_TEXT_HTML添加到PasteDataProperty的mimeTypes中。入参均不能为空,否则添加失败。
说明:
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用addRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
htmlText | string | 是 | HTML内容。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let html: string = "<!DOCTYPE html>\n" + "<html>\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>HTML-PASTEBOARD_HTML</title>\n" + "</head>\n" + "<body>\n" + " <h1>HEAD</h1>\n" + " <p></p>\n" + "</body>\n" + "</html>";
pasteData.addHtmlRecord(html);
addWantRecord(deprecated)
addWantRecord(want: Want): void
向当前剪贴板内容中添加一条Want条目,并将MIMETYPE_TEXT_WANT添加到PasteDataProperty的mimeTypes中。入参均不能为空,否则添加失败。
说明:
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用addRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | Want | 是 | Want对象内容。 |
示例:
import { Want } from '@kit.AbilityKit';
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let object: Want = {
bundleName: "com.example.aafwk.test",
abilityName: "com.example.aafwk.test.TwoAbility"
};
pasteData.addWantRecord(object);
addTextRecord(deprecated)
addTextRecord(text: string): void
向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到PasteDataProperty的mimeTypes中。入参均不能为空,否则添加失败。
说明:
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用addRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
text | string | 是 | 纯文本内容。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
pasteData.addTextRecord('good');
addUriRecord(deprecated)
addUriRecord(uri: string): void
向当前剪贴板内容中添加一条URI条目,并将MIMETYPE_TEXT_URI添加到PasteDataProperty的mimeTypes中。入参均不能为空,否则添加失败。
说明:
从 API version 7 开始支持,从 API version 9 开始废弃,建议使用addRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | URI内容。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt');
getRecordAt(deprecated)
getRecordAt(index: number): PasteDataRecord
获取剪贴板内容中指定下标的条目。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用getRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 指定条目的下标。 |
返回值:
类型 | 说明 |
---|---|
PasteDataRecord | 指定下标的条目。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let record: pasteboard.PasteDataRecord = pasteData.getRecordAt(0);
hasMimeType(deprecated)
hasMimeType(mimeType: string): boolean
检查剪贴板内容中是否有指定的数据类型。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用hasType替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mimeType | string | 是 | 待查询的数据类型。 |
返回值:
类型 | 说明 |
---|---|
boolean | 有指定的数据类型返回true,否则返回false。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let hasType: boolean = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);
removeRecordAt(deprecated)
removeRecordAt(index: number): boolean
移除剪贴板内容中指定下标的条目。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用removeRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 指定的下标。 |
返回值:
类型 | 说明 |
---|---|
boolean | 成功移除返回true,失败返回false。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let isRemove: boolean = pasteData.removeRecordAt(0);
replaceRecordAt(deprecated)
replaceRecordAt(index: number, record: PasteDataRecord): boolean
替换剪贴板内容中指定下标的条目。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用replaceRecord替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 指定的下标。 |
record | PasteDataRecord | 是 | 替换后的条目。 |
返回值:
类型 | 说明 |
---|---|
boolean | 成功替换返回true,失败返回false。 |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
let isReplace: boolean = pasteData.replaceRecordAt(0, record);
SystemPasteboard
系统剪贴板对象。
在调用SystemPasteboard的接口前,需要先通过getSystemPasteboard获取系统剪贴板。
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
on(‘update’)7+
on(type: ‘update’, callback: () =>void): void
订阅系统剪贴板内容变化事件,当系统剪贴板中内容变化时触发用户程序的回调。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 取值为’update’,表示系统剪贴板内容变化事件。 |
callback | function | 是 | 剪贴板中内容变化时触发的用户程序的回调。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
let listener = () => {
console.info('The system pasteboard has changed.');
};
systemPasteboard.on('update', listener);
off(‘update’)7+
off(type: ‘update’, callback?: () =>void): void
取消订阅系统剪贴板内容变化事件。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 取值为’update’,表示系统剪贴板内容变化事件。 |
callback | function | 否 | 剪贴板中内容变化时触发的用户程序的回调。如果此参数未填,表明清除本应用的所有监听回调,否则表示清除指定监听回调。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
let listener = () => {
console.info('The system pasteboard has changed.');
};
systemPasteboard.off('update', listener);
clearData9+
clearData(callback: AsyncCallback<void>): void
清空系统剪贴板内容,使用callback异步回调。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clearData((err, data) => {
if (err) {
console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
return;
}
console.info('Succeeded in clearing the pasteboard.');
});
clearData9+
clearData(): Promise<void>
清空系统剪贴板内容,使用Promise异步回调。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<void> | 无返回结果的Promise对象。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clearData().then((data: void) => {
console.info('Succeeded in clearing the pasteboard.');
}).catch((err: BusinessError) => {
console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
});
setData9+
setData(data: PasteData, callback: AsyncCallback<void>): void
将数据写入系统剪贴板,使用callback异步回调。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | PasteData | 是 | PasteData对象。 |
callback | AsyncCallback<void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
27787277 | Another copy or paste operation is in progress. |
27787278 | Replication is prohibited. |
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setData(pasteData, (err, data) => {
if (err) {
console.error('Failed to set PasteData. Cause: ' + err.message);
return;
}
console.info('Succeeded in setting PasteData.');
});
setData9+
setData(data: PasteData): Promise<void>
将数据写入系统剪贴板,使用Promise异步回调。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | PasteData | 是 | PasteData对象。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 无返回结果的Promise对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
27787277 | Another copy or paste operation is in progress. |
27787278 | Replication is prohibited. |
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setData(pasteData).then((data: void) => {
console.info('Succeeded in setting PasteData.');
}).catch((err: BusinessError) => {
console.error('Failed to set PasteData. Cause: ' + err.message);
});
getData9+
getData(callback: AsyncCallback<PasteData>): void
读取系统剪贴板内容,使用callback异步回调。
需要权限:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需申请访问剪贴板权限。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<PasteData> | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
27787277 | Another copy or paste operation is in progress. |
201 | Permission verification failed. The application does not have the permission required to call the API. |
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
if (err) {
console.error('Failed to get PasteData. Cause: ' + err.message);
return;
}
let text: string = pasteData.getPrimaryText();
});
getData9+
getData(): Promise<PasteData>
读取系统剪贴板内容,使用Promise异步回调。
需要权限:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需申请访问剪贴板权限。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<PasteData> | Promise对象,返回系统剪贴板数据。 |
错误码:
错误码ID | 错误信息 |
---|---|
27787277 | Another copy or paste operation is in progress. |
201 | Permission verification failed. The application does not have the permission required to call the API. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
});
hasData9+
hasData(callback: AsyncCallback<boolean>): void
判断系统剪贴板中是否有内容,使用callback异步回调。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<boolean> | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasData((err: BusinessError, data: boolean) => {
if (err) {
console.error(`Failed to check the PasteData. Cause: ${err.message}`);
return;
}
console.info(`Succeeded in checking the PasteData. Data: ${data}`);
});
hasData9+
hasData(): Promise<boolean>
判断系统剪贴板中是否有内容,使用Promise异步回调。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasData().then((data: boolean) => {
console.info(`Succeeded in checking the PasteData. Data: ${data}`);
}).catch((err: BusinessError) => {
console.error(`Failed to check the PasteData. Cause: ${err.message}`);
});
clear(deprecated)
clear(callback: AsyncCallback<void>): void
清空系统剪贴板内容,使用callback异步回调。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.clearData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clear((err, data) => {
if (err) {
console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
return;
}
console.info('Succeeded in clearing the PasteData.');
});
clear(deprecated)
clear(): Promise<void>
清空系统剪贴板内容,使用Promise异步回调。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用pasteboard.clearData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<void> | 无返回结果的Promise对象。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clear().then((data) => {
console.info('Succeeded in clearing the PasteData.');
}).catch((err: BusinessError) => {
console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
});
getPasteData(deprecated)
getPasteData(callback: AsyncCallback<PasteData>): void
读取系统剪贴板内容,使用callback异步回调。 > 说明: > > 从 API version 6 开始支持,从 API version 9 开始废弃,建议使用getData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<PasteData> | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getPasteData((err: BusinessError, pasteData: pasteboard.PasteData) => {
if (err) {
console.error('Failed to get PasteData. Cause: ' + err.message);
return;
}
let text: string = pasteData.getPrimaryText();
});
getPasteData(deprecated)
getPasteData(): Promise<PasteData>
读取系统剪贴板内容,使用Promise异步回调。 > 说明: > > 从 API version 6 开始支持,从 API version 9 开始废弃,建议使用getData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<PasteData> | Promise对象,返回系统剪贴板数据。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getPasteData().then((pasteData: pasteboard.PasteData) => {
let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
});
hasPasteData(deprecated)
hasPasteData(callback: AsyncCallback<boolean>): void
判断系统剪贴板中是否有内容,使用callback异步回调。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用hasData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<boolean> | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasPasteData((err: BusinessError, data: boolean) => {
if (err) {
console.error(`Failed to check the PasteData. Cause: ${err.message}`);
return;
}
console.info(`Succeeded in checking the PasteData. Data: ${data}`);
});
hasPasteData(deprecated)
hasPasteData(): Promise<boolean>
判断系统剪贴板中是否有内容,使用Promise异步回调。 > 说明: > > 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用hasData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<boolean> | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasPasteData().then((data: boolean) => {
console.info(`Succeeded in checking the PasteData. Data: ${data}`);
}).catch((err: BusinessError) => {
console.error(`Failed to check the PasteData. Cause: ${err.message}`);
});
setPasteData(deprecated)
setPasteData(data: PasteData, callback: AsyncCallback<void>): void
将数据写入系统剪贴板,使用callback异步回调。 > 说明: > > 从 API version 6 开始支持,从 API version 9 开始废弃,建议使用setData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | PasteData | 是 | PasteData对象。 |
callback | AsyncCallback<void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setPasteData(pasteData, (err, data) => {
if (err) {
console.error('Failed to set PasteData. Cause: ' + err.message);
return;
}
console.info('Succeeded in setting PasteData.');
});
setPasteData(deprecated)
setPasteData(data: PasteData): Promise<void>
将数据写入系统剪贴板,使用Promise异步回调。 > 说明: > > 从 API version 6 开始支持,从 API version 9 开始废弃,建议使用setData替代。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | PasteData | 是 | PasteData对象。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 无返回结果的Promise对象。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setPasteData(pasteData).then((data: void) => {
console.info('Succeeded in setting PasteData.');
}).catch((err: BusinessError) => {
console.error('Failed to set PasteData. Cause: ' + err.message);
});
isRemoteData11+
isRemoteData(): boolean
判断剪贴板中的数据是否来自其他设备。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
boolean | 是来自其他设备返回true,否则返回false。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
12900005 | Excessive processing time for internal data. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
let result: boolean = systemPasteboard.isRemoteData();
console.info(`Succeeded in checking the RemoteData. Result: ${result}`);
} catch (err) {
console.error('Failed to check the RemoteData. Cause:' + err.message);
};
getDataSource11+
getDataSource(): string
获取数据来源的应用包名。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
string | 数据来源的应用包名。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
12900005 | Excessive processing time for internal data. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
let result: string = systemPasteboard.getDataSource();
console.info(`Succeeded in getting DataSource. Result: ${result}`);
} catch (err) {
console.error('Failed to get DataSource. Cause:' + err.message);
};
hasDataType11+
hasDataType(mimeType: string): boolean
检查剪贴板内容中是否有指定类型的数据。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mimeType | string | 是 | 数据类型。 |
返回值:
类型 | 说明 |
---|---|
boolean | 有指定类型的数据返回true,否则返回false。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
12900005 | Excessive processing time for internal data. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
let result: boolean = systemPasteboard.hasDataType(pasteboard.MIMETYPE_TEXT_PLAIN);
console.info(`Succeeded in checking the DataType. Result: ${result}`);
} catch (err) {
console.error('Failed to check the DataType. Cause:' + err.message);
};
clearDataSync11+
clearDataSync(): void
清空系统剪贴板内容, 此接口为同步接口。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
12900005 | Excessive processing time for internal data. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
systemPasteboard.clearDataSync();
console.info('Succeeded in clearing the pasteboard.');
} catch (err) {
console.error('Failed to clear the pasteboard. Cause:' + err.message);
};
getDataSync11+
getDataSync(): PasteData
读取系统剪贴板内容, 此接口为同步接口。
需要权限:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需申请访问剪贴板权限。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
PasteData | 返回系统剪贴板数据。 |
错误码:
错误码ID | 错误信息 |
---|---|
12900005 | Excessive processing time for internal data. |
201 | Permission verification failed. The application does not have the permission required to call the API. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
let result: pasteboard.PasteData = systemPasteboard.getDataSync();
console.info('Succeeded in getting PasteData.');
} catch (err) {
console.error('Failed to get PasteData. Cause:' + err.message);
};
setDataSync11+
setDataSync(data: PasteData): void
将数据写入系统剪贴板, 此接口为同步接口。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | PasteData | 是 | 需要写入剪贴板中的数据。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
12900005 | Excessive processing time for internal data. |
示例:
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
systemPasteboard.setDataSync(pasteData);
console.info('Succeeded in setting PasteData.');
} catch (err) {
console.error('Failed to set PasteData. Cause:' + err.message);
};
hasDataSync11+
hasDataSync(): boolean
判断系统剪贴板中是否有内容, 此接口为同步接口。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
boolean | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
12900005 | Excessive processing time for internal data. |
示例:
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
let result: boolean = systemPasteboard.hasDataSync();
console.info(`Succeeded in checking the PasteData. Result: ${result}`);
} catch (err) {
console.error('Failed to check the PasteData. Cause:' + err.message);
};
getUnifiedData12+
getUnifiedData(): Promise<unifiedDataChannel.UnifiedData>
读取系统剪贴板内容,使用Promise异步回调。
需要权限:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需申请访问剪贴板权限。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<unifiedDataChannel.UnifiedData> | Promise对象,返回系统剪贴板数据。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
201 | Permission verification failed. The application does not have the permission required to call the API. |
27787277 | Another copy or paste operation is in progress. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
import { unifiedDataChannel, uniformDataStruct, uniformTypeDescriptor } from '@kit.ArkData';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getUnifiedData().then((data) => {
let records: Array<unifiedDataChannel.UnifiedRecord> = data.getRecords();
for (let j = 0; j < records.length; j++) {
if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
let text = records[j].getValue() as uniformDataStruct.PlainText;
console.info(`${j + 1}.${text.textContent}`);
}
}
}).catch((err: BusinessError) => {
console.error('Failed to get UnifiedData. Cause: ' + err.message);
});
getUnifiedDataSync12+
getUnifiedDataSync(): unifiedDataChannel.UnifiedData
读取系统剪贴板内容, 此接口为同步接口。
需要权限:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需申请访问剪贴板权限。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
unifiedDataChannel.UnifiedData | 返回系统剪贴板数据。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
201 | Permission verification failed. The application does not have the permission required to call the API. |
12900005 | Excessive processing time for internal data. |
示例:
import { unifiedDataChannel } from '@kit.ArkData';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
let result: unifiedDataChannel.UnifiedData = systemPasteboard.getUnifiedDataSync();
console.info('Succeeded in getting UnifiedData.');
} catch (err) {
console.error('Failed to get UnifiedData. Cause:' + err.message);
};
setUnifiedData12+
setUnifiedData(data: unifiedDataChannel.UnifiedData): Promise<void>
将数据写入系统剪贴板,使用Promise异步回调。
系统能力: SystemCapability.MiscServices.Pasteboard
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | unifiedDataChannel.UnifiedData | 是 | 需要写入剪贴板中的数据。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 无返回结果的Promise对象。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
27787277 | Another copy or paste operation is in progress. |
27787278 | Replication is prohibited. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
import { unifiedDataChannel, uniformDataStruct, uniformTypeDescriptor } from '@kit.ArkData';
let plainText : uniformDataStruct.PlainText = {
uniformDataType: uniformTypeDescriptor.UniformDataType.PLAIN_TEXT,
textContent : 'PLAINTEXT_CONTENT',
abstract : 'PLAINTEXT_ABSTRACT',
}
let record = new unifiedDataChannel.UnifiedRecord(uniformTypeDescriptor.UniformDataType.PLAIN_TEXT, plainText);
let data = new unifiedDataChannel.UnifiedData();
data.addRecord(record);
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setUnifiedData(data).then((data: void) => {
console.info('Succeeded in setting UnifiedData.');
}).catch((err: BusinessError) => {
console.error('Failed to setUnifiedData. Cause: ' + err.message);
});
setUnifiedDataSync12+
setUnifiedDataSync(data: unifiedDataChannel.UnifiedData): void
将数据写入系统剪贴板, 此接口为同步接口。
系统能力: SystemCapability.MiscServices.Pasteboard
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | unifiedDataChannel.UnifiedData | 是 | 需要写入剪贴板中的数据。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
12900005 | Excessive processing time for internal data. |
示例:
import { unifiedDataChannel } from '@kit.ArkData';
let plainTextData = new unifiedDataChannel.UnifiedData();
let plainText = new unifiedDataChannel.PlainText();
plainText.details = {
Key: 'delayPlaintext',
Value: 'delayPlaintext',
};
plainText.textContent = 'delayTextContent';
plainText.abstract = 'delayTextContent';
plainTextData.addRecord(plainText);
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
systemPasteboard.setUnifiedDataSync(plainTextData);
console.info('Succeeded in setting UnifiedData.');
} catch (err) {
console.error('Failed to set UnifiedData. Cause:' + err.message);
};
setAppShareOptions14+
setAppShareOptions(shareOptions: ShareOption): void
应用设置本应用剪贴板数据的可粘贴范围。
需要权限:ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
shareOptions | ShareOption | 是 | 可粘贴的范围,参数只允许pasteboard.ShareOption.INAPP。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
201 | Permission verification failed. The application does not have the permission required to call the API. |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
12900006 | Settings already exist. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
systemPasteboard.setAppShareOptions(pasteboard.ShareOption.INAPP);
console.info('Set app share options success.');
} catch (err) {
let error: BusinessError = err as BusinessError;
console.error(`Set app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`);
}
removeAppShareOptions14+
removeAppShareOptions(): void
删除应用全局的可粘贴的范围。
需要权限:ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION
系统能力: SystemCapability.MiscServices.Pasteboard
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
201 | Permission verification failed. The application does not have the permission required to call the API. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
systemPasteboard.removeAppShareOptions();
console.info('Remove app share options success.');
} catch (err) {
let error: BusinessError = err as BusinessError;
console.error(`Remove app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`);
}
Pattern13+
剪贴板支持检测的模式类型。
系统能力: SystemCapability.MiscServices.Pasteboard
名称 | 值 | 说明 |
---|---|---|
URL | 0 | URL类型。 |
NUMBER | 1 | 数字类型。 |
EMAIL_ADDRESS | 2 | 邮箱地址类型。 |
detectPatterns13+
detectPatterns(patterns: Array<Pattern>): Promise<Array<Pattern>>
检测本地剪贴板中存在的模式,使用Promise异步回调。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
patterns | Array<Pattern> | 是 | 需要在剪贴板中检测的模式。 |
返回值:
类型 | 说明 |
---|---|
Promise<Array<Pattern>> | Promise对象,返回检测到的模式。 |
错误码:
以下错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed. |
示例:
import { pasteboard } from '@kit.BasicServicesKit'
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
let patterns: Array<pasteboard.Pattern> = [pasteboard.Pattern.URL, pasteboard.Pattern.EMAIL_ADDRESS];
systemPasteboard.detectPatterns(patterns).then((data: Array<pasteboard.Pattern>) => {
if (patterns.sort().join('')==data.sort().join('')) {
console.info('All needed patterns detected, next get data');
try {
let result: pasteboard.PasteData = systemPasteboard.getDataSync();
console.info('Succeeded in getting PasteData.');
} catch (err) {
console.error('Failed to get PasteData. Cause:' + err.message);
};
} else {
console.info("Not all needed patterns detected, no need to get data.");
}
});
getMimeTypes14+
getMimeTypes(): Promise<Array<string>>
读取剪贴板中存在的MIME类型,使用Promise异步回调。
原子化服务API: 从API version 14开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
Promise<Array<string>> | Promise对象,返回读取到的MIME类型。 |
示例:
import { pasteboard, BusinessError } from '@kit.BasicServicesKit'
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getMimeTypes().then((data: Array<String>) => {
console.info('Succeeded in getting mimeTypes. mimeTypes: ' + data.sort().join(','));
}).catch((err: BusinessError) => {
console.error('Failed to get mimeTypes. Cause:' + err.message);
});
getDataWithProgress15+
getDataWithProgress(params: GetDataParams): Promise<PasteData>
获取剪贴板的内容和进度,使用Promise异步回调,不支持对文件夹的拷贝。
需要权限:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需申请访问剪贴板权限。
原子化服务API: 从API version 15开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
params | GetDataParams | 是 | 应用在使用剪贴板提供的文件拷贝能力的情况下需要的参数,包含目标路径、文件冲突选项、进度条类型等。 |
返回值:
类型 | 说明 |
---|---|
Promise<PasteData> | Promise对象,返回系统剪贴板数据。 |
错误码:
以下错误码的详细介绍请参见剪贴板错误码。
错误码ID | 错误信息 |
---|---|
201 | Permission verification failed. The application does not have the permission required to call the API. |
401 | Parameter error. |
12900003 | Another copy or paste operation is in progress. |
12900007 | Invalid destUri or file system error. |
12900008 | Failed to start progress. |
12900009 | Progress exits abnormally. |
12900010 | System error occurred during paste execution. |
示例:
import { BusinessError, pasteboard } from '@kit.BasicServicesKit';
@Entry
@Component
struct PasteboardTest {
build() {
RelativeContainer() {
Column() {
Column() {
Button("Copy txt")
.onClick(async ()=>{
let text = "test";
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, text);
let systemPasteboard = pasteboard.getSystemPasteboard();
await systemPasteboard.setData(pasteData);
let ProgressListener = (progress: pasteboard.ProgressInfo) => {
console.log('progressListener success, progress:' + progress.progress);
}
let params: pasteboard.GetDataParams = {
destUri: '/data/storage/el2/base/haps/entry/files/dstFile.txt',
fileConflictOptions: pasteboard.FileConflictOptions.OVERWRITE,
progressIndicator: pasteboard.ProgressIndicator.DEFAULT,
progressListener: ProgressListener
};
systemPasteboard.getDataWithProgress(params).then((pasteData: pasteboard.PasteData) => {
console.error('getDataWithProgress succ');
}).catch((err: BusinessError) => {
console.error('Failed to get PasteData. Cause: ' + err.message);
})
})
}
}
}
}
}
getChangeCount18+
getChangeCount(): number
获取剪贴板内容的变化次数。
执行成功时返回剪贴板内容的变化次数,否则返回0。
当剪贴板内容过期或调用clearDataSync等接口导致剪贴板内容为空时,内容变化次数不会因此改变。
系统重启或剪贴板服务异常重启时,剪贴板内容变化次数重新从0开始计数。对同一内容连续多次复制会被视作多次更改,每次复制均会导致内容变化次数增加。
原子化服务API: 从API version 18开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.MiscServices.Pasteboard
返回值:
类型 | 说明 |
---|---|
number | 返回读取到的剪贴板内容变化次数。 |
示例:
import { BusinessError, pasteboard } from '@kit.BasicServicesKit';
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
let result : number = systemPasteboard.getChangeCount();
console.info(`Succeeded in getting the ChangeCount. Result: ${result}`);
} catch (err) {
console.error(`Failed to get the ChangeCount. Cause: ${err.message}`);
};
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Basic Services Kit(基础服务)
harmony 鸿蒙Print_PrintAttributes
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦