1# @ohos.pasteboard (剪贴板) 2 3本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。系统剪贴板支持对文本、HTML、URI、Want、PixelMap等内容的操作。 4 5> **说明:** 6> 7> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 12import { pasteboard } from '@kit.BasicServicesKit'; 13``` 14 15## 常量 16 17**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 18 19**系统能力:** SystemCapability.MiscServices.Pasteboard 20 21| 名称 | 类型 | 值 | 说明 | 22| -------- | -------- |--------------|-------------------------------------------------------------------------------------------------------------------------------------------| 23| MAX_RECORD_NUM<sup>7+</sup> | number | - | API version 10之前,此常量值为512,表示单个PasteData中所能包含的最大条目数为512。当剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。<br>从API version 10开始,不再限制单个PasteData中所能包含的最大条目数。 | 24| MIMETYPE_TEXT_HTML<sup>7+</sup> | string | 'text/html' | HTML内容的MIME类型定义。 | 25| MIMETYPE_TEXT_WANT<sup>7+</sup> | string | 'text/want' | Want内容的MIME类型定义。 | 26| MIMETYPE_TEXT_PLAIN<sup>7+</sup> | string | 'text/plain' | 纯文本内容的MIME类型定义。 | 27| MIMETYPE_TEXT_URI<sup>7+</sup> | string | 'text/uri' | URI内容的MIME类型定义。 | 28| MIMETYPE_PIXELMAP<sup>9+</sup> | string | 'pixelMap' | PixelMap内容的MIME类型定义。 | 29 30## ValueType<sup>9+</sup> 31 32type ValueType = string | image.PixelMap | Want | ArrayBuffer 33 34用于表示允许的数据字段类型。 35 36**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 37 38**系统能力:** SystemCapability.MiscServices.Pasteboard 39 40| 类型 | 说明 | 41| -------- | -------- | 42| string | 表示string的类型。 | 43| image.PixelMap | 表示[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)的类型。 | 44| Want | 表示[Want](../apis-ability-kit/js-apis-app-ability-want.md)的类型。 | 45| ArrayBuffer | 表示ArrayBuffer的类型。 | 46 47## pasteboard.createData<sup>9+</sup> 48 49createData(mimeType: string, value: ValueType): PasteData 50 51构建一个自定义类型的剪贴板内容对象。 52 53**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 54 55**系统能力:** SystemCapability.MiscServices.Pasteboard 56 57**参数:** 58 59| 参数名 | 类型 | 必填 | 说明 | 60| -------- | -------- | -------- |--------------------------------------------------------------------------------------------------------| 61| mimeType | string | 是 | 剪贴板数据对应的MIME类型,可以是[常量](#常量)中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值, mimeType长度不能超过1024字节。 | 62| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 | 63 64**返回值:** 65 66| 类型 | 说明 | 67| -------- | -------- | 68| [PasteData](#pastedata) | 剪贴板内容对象。 | 69 70**错误码:** 71 72以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 73 74| 错误码ID | 错误信息 | 75| -------- | -------- | 76| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 77 78**示例1:** 79 80 ```ts 81 let dataXml = new ArrayBuffer(256); 82 let pasteData: pasteboard.PasteData = pasteboard.createData('app/xml', dataXml); 83 ``` 84 85**示例2:** 86 87 ```ts 88 let dataText = 'hello'; 89 let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, dataText); 90 ``` 91 92## pasteboard.createData<sup>14+</sup> 93 94createData(data: Record<string, ValueType>): PasteData 95 96构建一个包含多个类型数据的剪贴板内容对象。 97 98**系统能力:** SystemCapability.MiscServices.Pasteboard 99 100**参数:** 101 102| 参数名 | 类型 | 必填 | 说明 | 103| -------- |------------------------------------------------| -------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 104| data | Record<string, [ValueType](#valuetype9)> | 是 | Record的key为剪贴板数据对应的MIME类型。可以是[常量](#常量)中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型。也可以是自定义的MIME类型,可自定义此参数值,mimeType长度不能超过1024字节。<br/>Record的value为key中指定MIME类型对应的自定义数据。<br/>Record中的首个key-value指定的MIME类型,会作为剪贴板内容对象中首个PasteDataRecord的默认MIME类型,非默认类型的数据在粘贴时只能使用[getData](#getdata14)接口读取。 | 105 106**返回值:** 107 108| 类型 | 说明 | 109| -------- | -------- | 110| [PasteData](#pastedata) | 剪贴板内容对象。 | 111 112**错误码:** 113 114以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 115 116| 错误码ID | 错误信息 | 117| -------- | -------- | 118| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 119 120**示例1:** 121 122```ts 123let pasteData: pasteboard.PasteData = pasteboard.createData({ 124 'text/plain': 'hello', 125 'app/xml': new ArrayBuffer(256), 126}); 127``` 128 129**示例2:** 130 131```ts 132let record: Record<string, pasteboard.ValueType> = {}; 133record[pasteboard.MIMETYPE_TEXT_PLAIN] = 'hello'; 134record[pasteboard.MIMETYPE_TEXT_URI] = 'dataability:///com.example.myapplication1/user.txt'; 135let pasteData: pasteboard.PasteData = pasteboard.createData(record); 136``` 137 138## pasteboard.createRecord<sup>9+</sup> 139 140createRecord(mimeType: string, value: ValueType):PasteDataRecord; 141 142创建一条自定义数据内容条目。 143 144**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 145 146**系统能力:** SystemCapability.MiscServices.Pasteboard 147 148**参数:** 149 150| 参数名 | 类型 | 必填 | 说明 | 151| -------- | -------- | -------- |-------------------| 152| mimeType | string | 是 | 剪贴板数据对应的MIME类型,可以是[常量](#常量)中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值,mimeType长度不能超过1024个字节。 | 153| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 | 154 155**返回值:** 156 157| 类型 | 说明 | 158| -------- | -------- | 159| [PasteDataRecord](#pastedatarecord7) | 一条新建的自定义数据内容条目。 | 160 161**错误码:** 162 163以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 164 165| 错误码ID | 错误信息 | 166| -------- | -------- | 167| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 168 169**示例1:** 170 171 ```ts 172let dataXml = new ArrayBuffer(256); 173let pasteDataRecord: pasteboard.PasteDataRecord = pasteboard.createRecord('app/xml', dataXml); 174 ``` 175 176**示例2:** 177 178 ```ts 179let dataUri = 'dataability:///com.example.myapplication1/user.txt'; 180let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, dataUri); 181 ``` 182 183## pasteboard.getSystemPasteboard 184 185getSystemPasteboard(): SystemPasteboard 186 187获取系统剪贴板对象。 188 189**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 190 191**系统能力:** SystemCapability.MiscServices.Pasteboard 192 193**返回值:** 194 195| 类型 | 说明 | 196| -------- | -------- | 197| [SystemPasteboard](#systempasteboard) | 系统剪贴板对象。 | 198 199**示例:** 200 201```ts 202let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 203``` 204 205## ShareOption<sup>9+</sup> 206 207可粘贴数据的范围类型枚举。 208 209**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 210 211**系统能力:** SystemCapability.MiscServices.Pasteboard 212 213| 名称 | 值 | 说明 | 214| ---------------------------------- | --- | ------------------------------------------------------------------------------------- | 215| INAPP | 0 | 表示仅允许同应用内粘贴。 | 216| LOCALDEVICE | 1 | 表示允许在此设备中任何应用内粘贴。 | 217| CROSSDEVICE<sup>(deprecated)</sup> | 2 | 表示允许跨设备在任何应用内粘贴。<br/>从API Version 12开始废弃,无替代接口和替代方法,后续由用户在“设置-多设备协同-跨设备剪切板开关”选项中控制是否允许跨设备粘贴。 | 218 219## pasteboard.createHtmlData<sup>(deprecated)</sup> 220 221createHtmlData(htmlText: string): PasteData 222 223构建一个HTML剪贴板内容对象。 224> **说明:** 225> 226> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 227 228**系统能力:** SystemCapability.MiscServices.Pasteboard 229 230**参数:** 231 232| 参数名 | 类型 | 必填 | 说明 | 233| -------- | -------- | -------- | -------- | 234| htmlText | string | 是 | HTML内容。 | 235 236**返回值:** 237 238| 类型 | 说明 | 239| -------- | -------- | 240| [PasteData](#pastedata) | 剪贴板内容对象。 | 241 242**示例:** 243 244```ts 245let 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>"; 246let pasteData: pasteboard.PasteData = pasteboard.createHtmlData(html); 247``` 248 249## pasteboard.createWantData<sup>(deprecated)</sup> 250 251createWantData(want: Want): PasteData 252 253构建一个Want剪贴板内容对象。 254> **说明:** 255> 256> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 257 258**系统能力:** SystemCapability.MiscServices.Pasteboard 259 260**参数:** 261 262| 参数名 | 类型 | 必填 | 说明 | 263| -------- | -------- | -------- | -------- | 264| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | Want内容。 | 265 266**返回值:** 267 268| 类型 | 说明 | 269| -------- | -------- | 270| [PasteData](#pastedata) | 剪贴板内容对象。 | 271 272**示例:** 273 274```ts 275import { Want } from '@kit.AbilityKit'; 276 277let object: Want = { 278 bundleName: "com.example.aafwk.test", 279 abilityName: "com.example.aafwk.test.TwoAbility" 280}; 281let pasteData: pasteboard.PasteData = pasteboard.createWantData(object); 282``` 283 284## pasteboard.createPlainTextData<sup>(deprecated)</sup> 285 286createPlainTextData(text: string): PasteData 287 288构建一个纯文本剪贴板内容对象。 289> **说明:** 290> 291> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 292 293**系统能力:** SystemCapability.MiscServices.Pasteboard 294 295**参数:** 296 297| 参数名 | 类型 | 必填 | 说明 | 298| -------- | -------- | -------- | -------- | 299| text | string | 是 | 纯文本内容。 | 300 301**返回值:** 302 303| 类型 | 说明 | 304| -------- | -------- | 305| [PasteData](#pastedata) | 剪贴板内容对象。 | 306 307**示例:** 308 309```ts 310let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content'); 311``` 312 313## pasteboard.createUriData<sup>(deprecated)</sup> 314 315createUriData(uri: string): PasteData 316 317构建一个URI剪贴板内容对象。 318> **说明:** 319> 320> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 321 322**系统能力:** SystemCapability.MiscServices.Pasteboard 323 324**参数:** 325 326| 参数名 | 类型 | 必填 | 说明 | 327| -------- | -------- | -------- | -------- | 328| uri | string | 是 | URI内容。 | 329 330**返回值:** 331 332| 类型 | 说明 | 333| -------- | -------- | 334| [PasteData](#pastedata) | 剪贴板内容对象。 | 335 336**示例:** 337 338```ts 339let pasteData: pasteboard.PasteData = pasteboard.createUriData('dataability:///com.example.myapplication1/user.txt'); 340``` 341## pasteboard.createHtmlTextRecord<sup>(deprecated)</sup> 342 343createHtmlTextRecord(htmlText: string): PasteDataRecord 344 345创建一条HTML内容的条目。 346> **说明:** 347> 348> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 349 350**系统能力:** SystemCapability.MiscServices.Pasteboard 351 352**参数:** 353 354| 参数名 | 类型 | 必填 | 说明 | 355| -------- | -------- | -------- | -------- | 356| htmlText | string | 是 | HTML内容。 | 357 358**返回值:** 359 360| 类型 | 说明 | 361| -------- | -------- | 362| [PasteDataRecord](#pastedatarecord7) | 一条新建的HTML内容条目。 | 363 364**示例:** 365 366```ts 367let 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>"; 368let record: pasteboard.PasteDataRecord = pasteboard.createHtmlTextRecord(html); 369``` 370 371## pasteboard.createWantRecord<sup>(deprecated)</sup> 372 373createWantRecord(want: Want): PasteDataRecord 374 375创建一条Want内容条目。 376> **说明:** 377> 378> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 379 380**系统能力:** SystemCapability.MiscServices.Pasteboard 381 382**参数:** 383 384| 参数名 | 类型 | 必填 | 说明 | 385| -------- | -------- | -------- | -------- | 386| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | Want内容。 | 387 388**返回值:** 389 390| 类型 | 说明 | 391| -------- | -------- | 392| [PasteDataRecord](#pastedatarecord7) | 一条新建的Want内容条目。 | 393 394**示例:** 395 396```ts 397import { Want } from '@kit.AbilityKit'; 398 399let object: Want = { 400 bundleName: "com.example.aafwk.test", 401 abilityName: "com.example.aafwk.test.TwoAbility" 402}; 403let record: pasteboard.PasteDataRecord = pasteboard.createWantRecord(object); 404``` 405 406## pasteboard.createPlainTextRecord<sup>(deprecated)</sup> 407 408createPlainTextRecord(text: string): PasteDataRecord 409 410创建一条纯文本内容条目。 411> **说明:** 412> 413> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 414 415**系统能力:** SystemCapability.MiscServices.Pasteboard 416 417**参数:** 418 419| 参数名 | 类型 | 必填 | 说明 | 420| -------- | -------- | -------- | -------- | 421| text | string | 是 | 纯文本内容。 | 422 423**返回值:** 424 425| 类型 | 说明 | 426| -------- | -------- | 427| [PasteDataRecord](#pastedatarecord7) | 一条新建的纯文本内容条目。 | 428 429**示例:** 430 431```ts 432let record: pasteboard.PasteDataRecord = pasteboard.createPlainTextRecord('hello'); 433``` 434 435## pasteboard.createUriRecord<sup>(deprecated)</sup> 436 437createUriRecord(uri: string): PasteDataRecord 438 439创建一条URI内容的条目。 440> **说明:** 441> 442> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 443 444**系统能力:** SystemCapability.MiscServices.Pasteboard 445 446**参数:** 447 448| 参数名 | 类型 | 必填 | 说明 | 449| -------- | -------- | -------- | -------- | 450| uri | string | 是 | URI内容。 | 451 452**返回值:** 453 454| 类型 | 说明 | 455| -------- | -------- | 456| [PasteDataRecord](#pastedatarecord7) | 一条新建的URI内容条目。 | 457 458**示例:** 459 460```ts 461let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 462``` 463 464 465## PasteDataProperty<sup>7+</sup> 466 467定义了剪贴板中所有内容条目的属性,包含时间戳、数据类型、粘贴范围以及一些附加数据等, 468该属性必须通过[setProperty](#setproperty9)方法,才能设置到剪贴板中。 469 470**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 471 472**系统能力:** SystemCapability.MiscServices.Pasteboard 473 474| 名称 | 类型 | 可读 | 可写 | 说明 | 475| -------- | -------- | -------- | -------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 476| additions<sup>7+</sup> | {[key:string]:object} | 是 | 是 | 设置其他附加属性数据。不支持动态追加属性,只能通过重新赋值的方式修改附加值,具体见相关示例setProperty。 | 477| mimeTypes<sup>7+</sup> | Array<string> | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。 | 478| tag<sup>7+</sup> | string | 是 | 是 | 用户自定义标签。 | 479| timestamp<sup>7+</sup> | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。 | 480| localOnly<sup>7+</sup> | boolean | 是 | 是 | 配置剪贴板内容是否为“仅在本地”,默认值为false。其值会被shareOption属性覆盖,推荐使用shareOption属性。ShareOption.INAPP、ShareOption.LOCALDEVICE会将localOnly设置为true,ShareOption.CROSSDEVICE会将localOnly设置为false。<br/>- 配置为true时,表示内容仅在本地,不会在设备之间传递。<br/>- 配置为false时,表示内容将在设备间传递。 | 481| shareOption<sup>9+</sup> | [ShareOption](#shareoption9) | 是 | 是 | 指示剪贴板数据可以粘贴到的范围,如果未设置或设置不正确,则默认值为CROSSDEVICE。 | 482 483## PasteDataRecord<sup>7+</sup> 484 485对于剪贴板中内容记录的抽象定义,称之为条目。剪贴板内容部分由一个或者多个条目构成,例如一条文本内容、一份HTML、一个URI或者一个Want。 486 487### 属性 488 489**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 490 491**系统能力:** SystemCapability.MiscServices.Pasteboard 492 493| 名称 | 类型 | 可读 | 可写 | 说明 | 494| -------- | -------- | -------- | -------- | -------- | 495| htmlText<sup>7+</sup> | string | 是 | 否 | HTML内容。 | 496| want<sup>7+</sup> | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 否 | Want内容。 | 497| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 | 498| plainText<sup>7+</sup> | string | 是 | 否 | 纯文本内容。 | 499| uri<sup>7+</sup> | string | 是 | 否 | URI内容。 | 500| pixelMap<sup>9+</sup> | [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | 是 | 否 | PixelMap内容。 | 501| data<sup>9+</sup> | {[mimeType: string]: ArrayBuffer} | 是 | 否 | 自定义数据内容。 | 502 503### toPlainText<sup>9+</sup> 504 505toPlainText(): string 506 507将一个PasteData中的内容强制转换为文本内容。 508 509**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 510 511**系统能力:** SystemCapability.MiscServices.Pasteboard 512 513**返回值:** 514 515| 类型 | 说明 | 516| -------- | -------- | 517| string | 纯文本内容。 | 518 519**示例:** 520 521```ts 522let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 523let data: string = record.toPlainText(); 524console.info(`Succeeded in converting to text. Data: ${data}`); 525``` 526 527### addEntry<sup>14+</sup> 528 529addEntry(type: string, value: ValueType): void 530 531往一个PasteDataRecord中额外添加一种样式的自定义数据。此方式添加的MIME类型都不是Record的默认类型,粘贴时只能使用[getData](#getdata14)接口读取对应数据。 532 533**系统能力:** SystemCapability.MiscServices.Pasteboard 534 535**参数:** 536 537| 参数名 | 类型 | 必填 | 说明 | 538|-------| -------- | -------- |-------------------| 539| type | string | 是 | 剪贴板数据对应的MIME类型,可以是[常量](#常量)中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值,mimeType长度不能超过1024个字节。 | 540| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 | 541 542**错误码:** 543 544以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。 545 546| 错误码ID | 错误信息 | 547| -------- | -------- | 548| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 549 550**示例:** 551 552```ts 553let 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>"; 554let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 555record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 556record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html); 557``` 558 559### getValidTypes<sup>14+</sup> 560 561getValidTypes(types: Array<string>): Array<string> 562 563根据传入的MIME类型,返回传入的MIME类型和剪贴板中数据的MIME类型的交集。 564 565**系统能力:** SystemCapability.MiscServices.Pasteboard 566 567**参数:** 568 569| 参数名 | 类型 | 必填 | 说明 | 570|-------| -------- | -------- |----------------| 571| types | Array<string> | 是 | MIME类型列表。 | 572 573**返回值:** 574 575| 类型 | 说明 | 576| -------- |--------------------------------------| 577| Array<string> | 传入的MIME类型和剪贴板中数据的MIME类型的交集。 | 578 579**错误码:** 580 581以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。 582 583| 错误码ID | 错误信息 | 584| -------- | -------- | 585| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 586 587**示例:** 588 589```ts 590let 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>"; 591let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 592record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 593record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html); 594let types: string[] = record.getValidTypes([ 595 pasteboard.MIMETYPE_TEXT_PLAIN, 596 pasteboard.MIMETYPE_TEXT_HTML, 597 pasteboard.MIMETYPE_TEXT_URI, 598 pasteboard.MIMETYPE_TEXT_WANT, 599 pasteboard.MIMETYPE_PIXELMAP 600]); 601``` 602 603### getData<sup>14+</sup> 604 605getData(type: string): Promise<ValueType> 606 607从PasteDataRecord中获取指定MIME类型的自定义数据。 608 609**系统能力:** SystemCapability.MiscServices.Pasteboard 610 611**参数:** 612 613| 参数名 | 类型 |必填 | 说明 | 614|------|--------|-------- |----------| 615| type | string |是 | MIME类型。 | 616 617**返回值:** 618 619| 类型 | 说明 | 620|-----------------------------------------|----------------------------------------------------------------------------------------------------------------------| 621| Promise<[ValueType](#valuetype9)> | Promise对象,返回PasteDataRecord中指定MIME类型的自定义数据。<br/>PasteDataRecord中包含多个MIME类型数据时,非PasteDataRecord的默认MIME类型的数据只能通过本接口获取。 | 622 623**错误码:** 624 625以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。 626 627| 错误码ID | 错误信息 | 628| -------- | -------- | 629| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 630 631**示例:** 632 633```ts 634import { BusinessError } from '@kit.BasicServicesKit'; 635 636let 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>"; 637let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 638record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 639record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html); 640record.getData(pasteboard.MIMETYPE_TEXT_PLAIN).then((value: pasteboard.ValueType) => { 641 let textPlainContent = value as string; 642 console.info('Success to get text/plain value. value is: ' + textPlainContent); 643}).catch((err: BusinessError) => { 644 console.error('Failed to get text/plain value. Cause: ' + err.message); 645}); 646record.getData(pasteboard.MIMETYPE_TEXT_URI).then((value: pasteboard.ValueType) => { 647 let uri = value as string; 648 console.info('Success to get text/uri value. value is: ' + uri); 649}).catch((err: BusinessError) => { 650 console.error('Failed to get text/uri value. Cause: ' + err.message); 651}); 652``` 653 654### convertToText<sup>(deprecated)</sup> 655 656convertToText(callback: AsyncCallback<string>): void 657 658将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。 659> **说明:** 660> 661> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。 662 663**系统能力:** SystemCapability.MiscServices.Pasteboard 664 665**参数:** 666 667| 参数名 | 类型 | 必填 | 说明 | 668| -------- | -------- | -------- | -------- | 669| callback | AsyncCallback<string> | 是 | 回调函数,当转换成功,err为undefined,data为强制转换的文本内容;否则返回错误信息。 | 670 671**错误码:** 672 673以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 674 675| 错误码ID | 错误信息 | 676| -------- | -------- | 677| 401 | Possible causes: Incorrect parameters types. | 678 679**示例:** 680 681```ts 682import { BusinessError } from '@kit.BasicServicesKit'; 683 684let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 685record.convertToText((err: BusinessError, data: string) => { 686 if (err) { 687 console.error(`Failed to convert to text. Cause: ${err.message}`); 688 return; 689 } 690 console.info(`Succeeded in converting to text. Data: ${data}`); 691}); 692``` 693 694### convertToText<sup>(deprecated)</sup> 695 696convertToText(): Promise<string> 697 698将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。 699> **说明:** 700> 701> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。 702 703**系统能力:** SystemCapability.MiscServices.Pasteboard 704 705**返回值:** 706 707| 类型 | 说明 | 708| -------- | -------- | 709| Promise<string> | Promise对象,返回强制转换的文本内容。 | 710 711**示例:** 712 713```ts 714import { BusinessError } from '@kit.BasicServicesKit'; 715 716let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 717record.convertToText().then((data: string) => { 718 console.info(`Succeeded in converting to text. Data: ${data}`); 719}).catch((err: BusinessError) => { 720 console.error(`Failed to convert to text. Cause: ${err.message}`); 721}); 722``` 723 724## PasteData 725 726剪贴板内容对象。剪贴板内容包含一个或者多个内容条目([PasteDataRecord](#pastedatarecord7))以及属性描述对象([PasteDataProperty](#pastedataproperty7))。 727 728在调用PasteData的接口前,需要先通过[createData()](#pasteboardcreatedata9)或[getData()](#getdata9)获取一个PasteData对象。 729 730**系统能力:** SystemCapability.MiscServices.Pasteboard 731 732### getPrimaryText 733 734getPrimaryText(): string 735 736获取首个条目的纯文本内容。 737 738**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 739 740**系统能力:** SystemCapability.MiscServices.Pasteboard 741 742**返回值:** 743 744| 类型 | 说明 | 745| -------- | -------- | 746| string | 纯文本内容。 | 747 748**示例:** 749 750```ts 751let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 752let plainText: string = pasteData.getPrimaryText(); 753``` 754 755### getPrimaryHtml<sup>7+</sup> 756 757getPrimaryHtml(): string 758 759获取首个条目的HTML内容。 760 761**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 762 763**系统能力:** SystemCapability.MiscServices.Pasteboard 764 765**返回值:** 766 767| 类型 | 说明 | 768| -------- | -------- | 769| string | HTML内容。 | 770 771**示例:** 772 773```ts 774let 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>"; 775let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, html); 776let htmlText: string = pasteData.getPrimaryHtml(); 777``` 778 779### getPrimaryWant<sup>7+</sup> 780 781getPrimaryWant(): Want 782 783获取首个条目的Want对象内容。 784 785**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 786 787**系统能力:** SystemCapability.MiscServices.Pasteboard 788 789**返回值:** 790 791| 类型 | 说明 | 792| -------- | -------- | 793| [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Want对象内容。 | 794 795**示例:** 796 797```ts 798import { Want } from '@kit.AbilityKit'; 799 800let object: Want = { 801 bundleName: "com.example.aafwk.test", 802 abilityName: "com.example.aafwk.test.TwoAbility" 803}; 804let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, object); 805let want: Want = pasteData.getPrimaryWant(); 806``` 807 808### getPrimaryUri<sup>7+</sup> 809 810getPrimaryUri(): string 811 812获取首个条目的URI内容。 813 814**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 815 816**系统能力:** SystemCapability.MiscServices.Pasteboard 817 818**返回值:** 819 820| 类型 | 说明 | 821| -------- | -------- | 822| string | URI内容。 | 823 824**示例:** 825 826```ts 827let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 828let uri: string = pasteData.getPrimaryUri(); 829``` 830 831### getPrimaryPixelMap<sup>9+</sup> 832 833getPrimaryPixelMap(): image.PixelMap 834 835获取首个条目的PixelMap内容。 836 837**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 838 839**系统能力:** SystemCapability.MiscServices.Pasteboard 840 841**返回值:** 842 843| 类型 | 说明 | 844| -------- | -------- | 845| [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | PixelMap内容。 | 846 847**示例:** 848 849```ts 850import { image } from '@kit.ImageKit'; 851 852let buffer = new ArrayBuffer(128); 853let realSize: image.Size = { height: 3, width: 5 }; 854let opt: image.InitializationOptions = { 855 size: realSize, 856 pixelFormat: 3, 857 editable: true, 858 alphaType: 1, 859 scaleMode: 1 860}; 861image.createPixelMap(buffer, opt).then((pixelMap: image.PixelMap) => { 862 let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 863 let PixelMap: image.PixelMap = pasteData.getPrimaryPixelMap(); 864}); 865``` 866 867### addRecord<sup>7+</sup> 868 869addRecord(record: PasteDataRecord): void 870 871向当前剪贴板内容中添加一条条目,同时也会将条目类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 872 873**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 874 875**系统能力:** SystemCapability.MiscServices.Pasteboard 876 877**参数:** 878 879| 参数名 | 类型 | 必填 | 说明 | 880| -------- | -------- | -------- | -------- | 881| record | [PasteDataRecord](#pastedatarecord7) | 是 | 待添加的条目。 | 882 883**示例:** 884 885```ts 886let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 887let textRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 888let 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>"; 889let htmlRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, html); 890pasteData.addRecord(textRecord); 891pasteData.addRecord(htmlRecord); 892``` 893### addRecord<sup>9+</sup> 894 895addRecord(mimeType: string, value: ValueType): void 896 897向当前剪贴板内容中添加一条自定义数据内容条目,同时也会将自定义数据类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 898 899**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 900 901**系统能力:** SystemCapability.MiscServices.Pasteboard 902 903**参数:** 904 905| 参数名 | 类型 | 必填 | 说明 | 906| -------- | -------- | -------- | -------- | 907| mimeType | string | 是 | 自定义数据的MIME类型, 其长度不能超过1024个字节。 | 908| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 | 909 910**错误码:** 911 912以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。 913 914| 错误码ID | 错误信息 | 915| -------- | -------- | 916| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 917 918**示例:** 919 920 ```ts 921 let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 922 let dataXml = new ArrayBuffer(256); 923 pasteData.addRecord('app/xml', dataXml); 924 ``` 925 926### getMimeTypes<sup>7+</sup> 927 928getMimeTypes(): Array<string> 929 930获取剪贴板中[PasteDataProperty](#pastedataproperty7)的mimeTypes列表,当剪贴板内容为空时,返回列表为空。 931 932**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 933 934**系统能力:** SystemCapability.MiscServices.Pasteboard 935 936**返回值:** 937 938| 类型 | 说明 | 939| -------- | -------- | 940| Array<string> | 剪贴板内容条目的数据类型,非重复的类型列表。 | 941 942**示例:** 943 944```ts 945let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 946let types: string[] = pasteData.getMimeTypes(); 947``` 948 949### getPrimaryMimeType<sup>7+</sup> 950 951getPrimaryMimeType(): string 952 953获取剪贴板内容中首个条目的数据类型。 954 955**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 956 957**系统能力:** SystemCapability.MiscServices.Pasteboard 958 959**返回值:** 960 961| 类型 | 说明 | 962| -------- | -------- | 963| string | 首个条目的数据类型。 | 964 965**示例:** 966 967```ts 968let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 969let type: string = pasteData.getPrimaryMimeType(); 970``` 971 972### getProperty<sup>7+</sup> 973 974getProperty(): PasteDataProperty 975 976获取剪贴板内容的属性描述对象。 977 978**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 979 980**系统能力:** SystemCapability.MiscServices.Pasteboard 981 982**返回值:** 983 984| 类型 | 说明 | 985| -------- | -------- | 986| [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 | 987 988**示例:** 989 990```ts 991let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 992let property: pasteboard.PasteDataProperty = pasteData.getProperty(); 993``` 994 995### setProperty<sup>9+</sup> 996 997setProperty(property: PasteDataProperty): void 998 999设置剪贴板内容的属性描述对象[PasteDataProperty](#pastedataproperty7)。 1000 1001**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1002 1003**系统能力:** SystemCapability.MiscServices.Pasteboard 1004 1005**参数:** 1006 1007| 参数名 | 类型 | 必填 | 说明 | 1008| -------- | -------- | -------- | -------- | 1009| property | [PasteDataProperty](#pastedataproperty7) | 是 | 属性描述对象。 | 1010 1011**错误码:** 1012 1013以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1014 1015| 错误码ID | 错误信息 | 1016| -------- | -------- | 1017| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1018 1019**示例:** 1020 1021```ts 1022type AdditionType = Record<string, Record<string, Object>>; 1023 1024let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'application/xml'); 1025let prop: pasteboard.PasteDataProperty = pasteData.getProperty(); 1026prop.shareOption = pasteboard.ShareOption.INAPP; 1027// 需要注意,不支持对addition进行追加属性的操作,只能通过重新赋值的方式达到追加属性的目的。 1028prop.additions = { 'TestOne': { 'Test': 123 }, 'TestTwo': { 'Test': 'additions' } } as AdditionType; 1029prop.tag = 'TestTag'; 1030pasteData.setProperty(prop); 1031``` 1032[PasteDataProperty](#pastedataproperty7)的localOnly与shareOption属性互斥,最终结果以shareOption为准,shareOption会影响localOnly的值。 1033```ts 1034(async () => { 1035 let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 1036 let prop: pasteboard.PasteDataProperty = pasteData.getProperty(); 1037 prop.shareOption = pasteboard.ShareOption.INAPP; 1038 prop.localOnly = false; 1039 pasteData.setProperty(prop); 1040 let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1041 1042 await systemPasteboard.setData(pasteData).then(async () => { 1043 console.info('Succeeded in setting PasteData.'); 1044 await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => { 1045 let prop: pasteboard.PasteDataProperty = pasteData.getProperty(); 1046 prop.localOnly; // true 1047 }); 1048 }); 1049 1050 prop.shareOption = pasteboard.ShareOption.LOCALDEVICE; 1051 prop.localOnly = false; 1052 pasteData.setProperty(prop); 1053 1054 await systemPasteboard.setData(pasteData).then(async () => { 1055 console.info('Succeeded in setting PasteData.'); 1056 await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => { 1057 let prop: pasteboard.PasteDataProperty = pasteData.getProperty(); 1058 prop.localOnly; // true 1059 }); 1060 }); 1061 1062 prop.shareOption = pasteboard.ShareOption.CROSSDEVICE; 1063 prop.localOnly = true; 1064 pasteData.setProperty(prop); 1065 1066 await systemPasteboard.setData(pasteData).then(async () => { 1067 console.info('Succeeded in setting PasteData.'); 1068 await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => { 1069 let prop: pasteboard.PasteDataProperty = pasteData.getProperty(); 1070 prop.localOnly; // false 1071 }); 1072 }); 1073})() 1074``` 1075 1076### getRecord<sup>9+</sup> 1077 1078getRecord(index: number): PasteDataRecord 1079 1080获取剪贴板内容中指定下标的条目。 1081 1082**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1083 1084**系统能力:** SystemCapability.MiscServices.Pasteboard 1085 1086**参数:** 1087 1088| 参数名 | 类型 | 必填 | 说明 | 1089| -------- | -------- | -------- | -------- | 1090| index | number | 是 | 指定条目的下标。 | 1091 1092**返回值:** 1093 1094| 类型 | 说明 | 1095| -------- | -------- | 1096| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 | 1097 1098**错误码:** 1099 1100以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 1101 1102| 错误码ID | 错误信息 | 1103| -------- | -------- | 1104| 12900001 | The index is out of the record. | 1105| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1106 1107**示例:** 1108 1109```ts 1110let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 1111let record: pasteboard.PasteDataRecord = pasteData.getRecord(0); 1112``` 1113 1114### getRecordCount<sup>7+</sup> 1115 1116getRecordCount(): number 1117 1118获取剪贴板内容中条目的个数。 1119 1120**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1121 1122**系统能力:** SystemCapability.MiscServices.Pasteboard 1123 1124**返回值:** 1125 1126| 类型 | 说明 | 1127| -------- | -------- | 1128| number | 条目的个数。 | 1129 1130**示例:** 1131 1132```ts 1133let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 1134let count: number = pasteData.getRecordCount(); 1135``` 1136 1137### getTag<sup>7+</sup> 1138 1139getTag(): string 1140 1141获取剪贴板内容中用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。 1142 1143**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1144 1145**系统能力:** SystemCapability.MiscServices.Pasteboard 1146 1147**返回值:** 1148 1149| 类型 | 说明 | 1150| -------- | -------- | 1151| string | 返回用户自定义的标签内容,如果没有设置用户自定义的标签内容,将返回空。 | 1152 1153**示例:** 1154 1155```ts 1156let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 1157let tag: string = pasteData.getTag(); 1158``` 1159 1160### hasType<sup>9+</sup> 1161 1162hasType(mimeType: string): boolean 1163 1164检查剪贴板内容中是否有指定的MIME数据类型。 1165 1166**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1167 1168**系统能力:** SystemCapability.MiscServices.Pasteboard 1169 1170**参数:** 1171 1172| 参数名 | 类型 | 必填 | 说明 | 1173| -------- | -------- | -------- | -------- | 1174| mimeType | string | 是 | 待查询的数据类型。 | 1175 1176**返回值:** 1177 1178| 类型 | 说明 | 1179| -------- | -------- | 1180| boolean | 有指定的数据类型返回true,否则返回false。 | 1181 1182**错误码:** 1183 1184以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1185 1186| 错误码ID | 错误信息 | 1187| -------- | -------- | 1188| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1189 1190**示例:** 1191 1192```ts 1193let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 1194let hasType: boolean = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN); 1195``` 1196 1197### removeRecord<sup>9+</sup> 1198 1199removeRecord(index: number): void 1200 1201移除剪贴板内容中指定下标的条目。 1202 1203**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1204 1205**系统能力:** SystemCapability.MiscServices.Pasteboard 1206 1207**参数:** 1208 1209| 参数名 | 类型 | 必填 | 说明 | 1210| -------- | -------- | -------- | -------- | 1211| index | number | 是 | 指定的下标。 | 1212 1213**错误码:** 1214 1215以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 1216 1217| 错误码ID | 错误信息 | 1218| -------- | -------- | 1219| 12900001 | The index is out of the record. | 1220| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1221 1222**示例:** 1223 1224```ts 1225let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 1226pasteData.removeRecord(0); 1227``` 1228 1229### replaceRecord<sup>9+</sup> 1230 1231replaceRecord(index: number, record: PasteDataRecord): void 1232 1233替换剪贴板内容中指定下标的条目。 1234 1235**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1236 1237**系统能力:** SystemCapability.MiscServices.Pasteboard 1238 1239**参数:** 1240 1241| 参数名 | 类型 | 必填 | 说明 | 1242| -------- | -------- | -------- | -------- | 1243| index | number | 是 | 指定的下标。 | 1244| record | [PasteDataRecord](#pastedatarecord7) | 是 | 新条目的内容。 | 1245 1246**错误码:** 1247 1248以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 1249 1250| 错误码ID | 错误信息 | 1251| -------- | -------- | 1252| 12900001 | The index is out of the record. | 1253| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1254 1255**示例:** 1256 1257```ts 1258let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 1259let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 1260pasteData.replaceRecord(0, record); 1261``` 1262 1263### pasteStart<sup>12+</sup> 1264 1265pasteStart(): void 1266 1267读取剪贴板数据前,通知剪贴板服务保留跨设备通道。 1268 1269**系统能力:** SystemCapability.MiscServices.Pasteboard 1270 1271**示例:** 1272 1273```ts 1274import { BusinessError } from '@kit.BasicServicesKit'; 1275 1276let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1277systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => { 1278 if (err) { 1279 console.error('Failed to get PasteData. Cause: ' + err.message); 1280 return; 1281 } 1282 pasteData.pasteStart(); 1283 console.log(`using data: ${pasteData.getPrimaryText()}`); 1284 pasteData.pasteComplete(); 1285}); 1286``` 1287 1288### pasteComplete<sup>12+</sup> 1289 1290pasteComplete(): void 1291 1292通知剪贴板服务数据使用已完成。 1293 1294**系统能力:** SystemCapability.MiscServices.Pasteboard 1295 1296**示例:** 1297 1298```ts 1299import { BusinessError } from '@kit.BasicServicesKit'; 1300 1301let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1302systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => { 1303 if (err) { 1304 console.error('Failed to get PasteData. Cause: ' + err.message); 1305 return; 1306 } 1307 pasteData.pasteStart(); 1308 console.log(`using data: ${pasteData.getPrimaryText()}`); 1309 pasteData.pasteComplete(); 1310}); 1311``` 1312 1313### addHtmlRecord<sup>(deprecated)</sup> 1314 1315addHtmlRecord(htmlText: string): void 1316 1317向当前剪贴板内容中添加一条HTML内容条目,并将MIMETYPE_TEXT_HTML添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 1318 1319> **说明:** 1320> 1321> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 1322 1323**系统能力:** SystemCapability.MiscServices.Pasteboard 1324 1325**参数:** 1326 1327| 参数名 | 类型 | 必填 | 说明 | 1328| -------- | -------- | -------- | -------- | 1329| htmlText | string | 是 | HTML内容。 | 1330 1331**示例:** 1332 1333```ts 1334let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1335let 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>"; 1336pasteData.addHtmlRecord(html); 1337``` 1338 1339### addWantRecord<sup>(deprecated)</sup> 1340 1341addWantRecord(want: Want): void 1342 1343向当前剪贴板内容中添加一条Want条目,并将MIMETYPE_TEXT_WANT添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 1344 1345> **说明:** 1346> 1347> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 1348 1349**系统能力:** SystemCapability.MiscServices.Pasteboard 1350 1351**参数:** 1352 1353| 参数名 | 类型 | 必填 | 说明 | 1354| -------- | -------- | -------- | -------- | 1355| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | Want对象内容。 | 1356 1357**示例:** 1358 1359```ts 1360import { Want } from '@kit.AbilityKit'; 1361 1362let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1363let object: Want = { 1364 bundleName: "com.example.aafwk.test", 1365 abilityName: "com.example.aafwk.test.TwoAbility" 1366}; 1367pasteData.addWantRecord(object); 1368``` 1369 1370### addTextRecord<sup>(deprecated)</sup> 1371 1372addTextRecord(text: string): void 1373 1374向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 1375 1376> **说明:** 1377> 1378> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 1379 1380**系统能力:** SystemCapability.MiscServices.Pasteboard 1381 1382**参数:** 1383 1384| 参数名 | 类型 | 必填 | 说明 | 1385| -------- | -------- | -------- | -------- | 1386| text | string | 是 | 纯文本内容。 | 1387 1388**示例:** 1389 1390```ts 1391let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1392pasteData.addTextRecord('good'); 1393``` 1394 1395### addUriRecord<sup>(deprecated)</sup> 1396 1397addUriRecord(uri: string): void 1398 1399向当前剪贴板内容中添加一条URI条目,并将MIMETYPE_TEXT_URI添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 1400 1401> **说明:** 1402> 1403> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 1404 1405**系统能力:** SystemCapability.MiscServices.Pasteboard 1406 1407**参数:** 1408 1409| 参数名 | 类型 | 必填 | 说明 | 1410| -------- | -------- | -------- | -------- | 1411| uri | string | 是 | URI内容。 | 1412 1413**示例:** 1414 1415```ts 1416let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1417pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt'); 1418``` 1419### getRecordAt<sup>(deprecated)</sup> 1420 1421getRecordAt(index: number): PasteDataRecord 1422 1423获取剪贴板内容中指定下标的条目。 1424> **说明:** 1425> 1426> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[getRecord](#getrecord9)替代。 1427 1428**系统能力:** SystemCapability.MiscServices.Pasteboard 1429 1430**参数:** 1431 1432| 参数名 | 类型 | 必填 | 说明 | 1433| -------- | -------- | -------- | -------- | 1434| index | number | 是 | 指定条目的下标。 | 1435 1436**返回值:** 1437 1438| 类型 | 说明 | 1439| -------- | -------- | 1440| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 | 1441 1442**错误码:** 1443 1444以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1445 1446| 错误码ID | 错误信息 | 1447| -------- | -------- | 1448| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1449 1450**示例:** 1451 1452```ts 1453let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1454let record: pasteboard.PasteDataRecord = pasteData.getRecordAt(0); 1455``` 1456 1457### hasMimeType<sup>(deprecated)</sup> 1458 1459hasMimeType(mimeType: string): boolean 1460 1461检查剪贴板内容中是否有指定的数据类型。 1462> **说明:** 1463> 1464> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasType](#hastype9)替代。 1465 1466**系统能力:** SystemCapability.MiscServices.Pasteboard 1467 1468**参数:** 1469 1470| 参数名 | 类型 | 必填 | 说明 | 1471| -------- | -------- | -------- | -------- | 1472| mimeType | string | 是 | 待查询的数据类型。 | 1473 1474**返回值:** 1475 1476| 类型 | 说明 | 1477| -------- | -------- | 1478| boolean | 有指定的数据类型返回true,否则返回false。 | 1479 1480**错误码:** 1481 1482以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1483 1484| 错误码ID | 错误信息 | 1485| -------- | -------- | 1486| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1487 1488**示例:** 1489 1490```ts 1491let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1492let hasType: boolean = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN); 1493``` 1494### removeRecordAt<sup>(deprecated)</sup> 1495 1496removeRecordAt(index: number): boolean 1497 1498移除剪贴板内容中指定下标的条目。 1499> **说明:** 1500> 1501> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[removeRecord](#removerecord9)替代。 1502 1503**系统能力:** SystemCapability.MiscServices.Pasteboard 1504 1505**参数:** 1506 1507| 参数名 | 类型 | 必填 | 说明 | 1508| -------- | -------- | -------- | -------- | 1509| index | number | 是 | 指定的下标。 | 1510 1511**返回值:** 1512 1513| 类型 | 说明 | 1514| -------- | -------- | 1515| boolean | 成功移除返回true,失败返回false。 | 1516 1517**错误码:** 1518 1519以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1520 1521| 错误码ID | 错误信息 | 1522| -------- | -------- | 1523| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1524 1525**示例:** 1526 1527```ts 1528let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1529let isRemove: boolean = pasteData.removeRecordAt(0); 1530``` 1531### replaceRecordAt<sup>(deprecated)</sup> 1532 1533replaceRecordAt(index: number, record: PasteDataRecord): boolean 1534 1535替换剪贴板内容中指定下标的条目。 1536> **说明:** 1537> 1538> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[replaceRecord](#replacerecord9)替代。 1539 1540**系统能力:** SystemCapability.MiscServices.Pasteboard 1541 1542**参数:** 1543 1544| 参数名 | 类型 | 必填 | 说明 | 1545| -------- | -------- | -------- | -------- | 1546| index | number | 是 | 指定的下标。 | 1547| record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 | 1548 1549**返回值:** 1550 1551| 类型 | 说明 | 1552| -------- | -------- | 1553| boolean | 成功替换返回true,失败返回false。 | 1554 1555**示例:** 1556 1557```ts 1558let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello'); 1559let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 1560let isReplace: boolean = pasteData.replaceRecordAt(0, record); 1561``` 1562 1563## SystemPasteboard 1564 1565系统剪贴板对象。 1566 1567在调用SystemPasteboard的接口前,需要先通过[getSystemPasteboard](#pasteboardgetsystempasteboard)获取系统剪贴板。 1568 1569```ts 1570let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1571``` 1572 1573### on('update')<sup>7+</sup> 1574 1575on(type: 'update', callback: () =>void ): void 1576 1577订阅系统剪贴板内容变化事件,当系统剪贴板中内容变化时触发用户程序的回调。 1578 1579**系统能力:** SystemCapability.MiscServices.Pasteboard 1580 1581**参数:** 1582 1583| 参数名 | 类型 | 必填 | 说明 | 1584| -------- | -------- | -------- | -------- | 1585| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 | 1586| callback | function | 是 | 剪贴板中内容变化时触发的用户程序的回调。 | 1587 1588**错误码:** 1589 1590以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1591 1592| 错误码ID | 错误信息 | 1593| -------- | -------- | 1594| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1595 1596**示例:** 1597 1598```ts 1599let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1600let listener = () => { 1601 console.info('The system pasteboard has changed.'); 1602}; 1603systemPasteboard.on('update', listener); 1604``` 1605 1606### off('update')<sup>7+</sup> 1607 1608off(type: 'update', callback?: () =>void ): void 1609 1610取消订阅系统剪贴板内容变化事件。 1611 1612**系统能力:** SystemCapability.MiscServices.Pasteboard 1613 1614**参数:** 1615 1616| 参数名 | 类型 | 必填 | 说明 | 1617| -------- | -------- | -------- |---------------------------------------------------------| 1618| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 | 1619| callback | function | 否 | 剪贴板中内容变化时触发的用户程序的回调。如果此参数未填,表明清除本应用的所有监听回调,否则表示清除指定监听回调。| 1620 1621**错误码:** 1622 1623以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1624 1625| 错误码ID | 错误信息 | 1626| -------- | -------- | 1627| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1628 1629**示例:** 1630 1631```ts 1632let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1633let listener = () => { 1634 console.info('The system pasteboard has changed.'); 1635}; 1636systemPasteboard.off('update', listener); 1637``` 1638 1639### clearData<sup>9+</sup> 1640 1641clearData(callback: AsyncCallback<void>): void 1642 1643清空系统剪贴板内容,使用callback异步回调。 1644 1645**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1646 1647**系统能力:** SystemCapability.MiscServices.Pasteboard 1648 1649**参数:** 1650 1651| 参数名 | 类型 | 必填 | 说明 | 1652| -------- | -------- | -------- | -------- | 1653| callback | AsyncCallback<void> | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 | 1654 1655**错误码:** 1656 1657以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1658 1659| 错误码ID | 错误信息 | 1660| -------- | -------- | 1661| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1662 1663**示例:** 1664 1665```ts 1666let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1667systemPasteboard.clearData((err, data) => { 1668 if (err) { 1669 console.error(`Failed to clear the pasteboard. Cause: ${err.message}`); 1670 return; 1671 } 1672 console.info('Succeeded in clearing the pasteboard.'); 1673}); 1674``` 1675 1676### clearData<sup>9+</sup> 1677 1678clearData(): Promise<void> 1679 1680清空系统剪贴板内容,使用Promise异步回调。 1681 1682**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1683 1684**系统能力:** SystemCapability.MiscServices.Pasteboard 1685 1686**返回值:** 1687 1688| 类型 | 说明 | 1689| -------- | -------- | 1690| Promise<void> | 无返回结果的Promise对象。 | 1691 1692**示例:** 1693 1694```ts 1695import { BusinessError } from '@kit.BasicServicesKit'; 1696 1697let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1698systemPasteboard.clearData().then((data: void) => { 1699 console.info('Succeeded in clearing the pasteboard.'); 1700}).catch((err: BusinessError) => { 1701 console.error(`Failed to clear the pasteboard. Cause: ${err.message}`); 1702}); 1703``` 1704 1705### setData<sup>9+</sup> 1706 1707setData(data: PasteData, callback: AsyncCallback<void>): void 1708 1709将数据写入系统剪贴板,使用callback异步回调。 1710 1711**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1712 1713**系统能力:** SystemCapability.MiscServices.Pasteboard 1714 1715**参数:** 1716 1717| 参数名 | 类型 | 必填 | 说明 | 1718| -------- | -------- | -------- | -------- | 1719| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 1720| callback | AsyncCallback<void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 | 1721 1722**错误码:** 1723 1724以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 1725 1726| 错误码ID | 错误信息 | 1727| -------- | -------- | 1728| 12900003 | Another copy or paste operation is in progress. | 1729| 12900004 | Replication is prohibited. | 1730| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1731 1732**示例:** 1733 1734```ts 1735let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content'); 1736let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1737systemPasteboard.setData(pasteData, (err, data) => { 1738 if (err) { 1739 console.error('Failed to set PasteData. Cause: ' + err.message); 1740 return; 1741 } 1742 console.info('Succeeded in setting PasteData.'); 1743}); 1744``` 1745 1746### setData<sup>9+</sup> 1747 1748setData(data: PasteData): Promise<void> 1749 1750将数据写入系统剪贴板,使用Promise异步回调。 1751 1752**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1753 1754**系统能力:** SystemCapability.MiscServices.Pasteboard 1755 1756**参数:** 1757 1758| 参数名 | 类型 | 必填 | 说明 | 1759| -------- | -------- | -------- | -------- | 1760| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 1761 1762**返回值:** 1763 1764| 类型 | 说明 | 1765| -------- | -------- | 1766| Promise<void> | 无返回结果的Promise对象。 | 1767 1768**错误码:** 1769 1770以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 1771 1772| 错误码ID | 错误信息 | 1773| -------- | -------- | 1774| 12900003 | Another copy or paste operation is in progress. | 1775| 12900004 | Replication is prohibited. | 1776| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1777 1778**示例:** 1779 1780```ts 1781import { BusinessError } from '@kit.BasicServicesKit'; 1782 1783let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content'); 1784let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1785systemPasteboard.setData(pasteData).then((data: void) => { 1786 console.info('Succeeded in setting PasteData.'); 1787}).catch((err: BusinessError) => { 1788 console.error('Failed to set PasteData. Cause: ' + err.message); 1789}); 1790``` 1791 1792### getData<sup>9+</sup> 1793 1794getData( callback: AsyncCallback<PasteData>): void 1795 1796读取系统剪贴板内容,使用callback异步回调。 1797 1798**需要权限**:ohos.permission.READ_PASTEBOARD 1799 1800**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1801 1802**系统能力:** SystemCapability.MiscServices.Pasteboard 1803 1804**参数:** 1805 1806| 参数名 | 类型 | 必填 | 说明 | 1807| -------- | -------- | -------- | -------- | 1808| callback | AsyncCallback<[PasteData](#pastedata)> | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 | 1809 1810**错误码:** 1811 1812以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 1813 1814| 错误码ID | 错误信息 | 1815| -------- | -------- | 1816| 12900003 | Another copy or paste operation is in progress. | 1817| 201 | Permission verification failed. The application does not have the permission required to call the API. | 1818| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1819 1820**示例:** 1821 1822```ts 1823import { BusinessError } from '@kit.BasicServicesKit'; 1824 1825let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1826systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => { 1827 if (err) { 1828 console.error('Failed to get PasteData. Cause: ' + err.message); 1829 return; 1830 } 1831 let text: string = pasteData.getPrimaryText(); 1832}); 1833``` 1834 1835### getData<sup>9+</sup> 1836 1837getData(): Promise<PasteData> 1838 1839读取系统剪贴板内容,使用Promise异步回调。 1840 1841**需要权限**:ohos.permission.READ_PASTEBOARD 1842 1843**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1844 1845**系统能力:** SystemCapability.MiscServices.Pasteboard 1846 1847**返回值:** 1848 1849| 类型 | 说明 | 1850| -------- | -------- | 1851| Promise<[PasteData](#pastedata)> | Promise对象,返回系统剪贴板数据。 | 1852 1853**错误码:** 1854 1855以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 1856 1857| 错误码ID | 错误信息 | 1858| -------- | -------- | 1859| 12900003 | Another copy or paste operation is in progress. | 1860| 201 | Permission verification failed. The application does not have the permission required to call the API. | 1861 1862**示例:** 1863 1864```ts 1865import { BusinessError } from '@kit.BasicServicesKit'; 1866 1867let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1868systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => { 1869 let text: string = pasteData.getPrimaryText(); 1870}).catch((err: BusinessError) => { 1871 console.error('Failed to get PasteData. Cause: ' + err.message); 1872}); 1873``` 1874 1875### hasData<sup>9+</sup> 1876 1877hasData(callback: AsyncCallback<boolean>): void 1878 1879判断系统剪贴板中是否有内容,使用callback异步回调。 1880 1881**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1882 1883**系统能力:** SystemCapability.MiscServices.Pasteboard 1884 1885**参数:** 1886 1887| 参数名 | 类型 | 必填 | 说明 | 1888| -------- | -------- | -------- | -------- | 1889| callback | AsyncCallback<boolean> | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1890 1891**错误码:** 1892 1893以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1894 1895| 错误码ID | 错误信息 | 1896| -------- | -------- | 1897| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1898 1899**示例:** 1900 1901```ts 1902import { BusinessError } from '@kit.BasicServicesKit'; 1903 1904let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1905systemPasteboard.hasData((err: BusinessError, data: boolean) => { 1906 if (err) { 1907 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 1908 return; 1909 } 1910 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 1911}); 1912``` 1913 1914### hasData<sup>9+</sup> 1915 1916hasData(): Promise<boolean> 1917 1918判断系统剪贴板中是否有内容,使用Promise异步回调。 1919 1920**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1921 1922**系统能力:** SystemCapability.MiscServices.Pasteboard 1923 1924**返回值:** 1925 1926| 类型 | 说明 | 1927| -------- | -------- | 1928| Promise<boolean> | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1929 1930**示例:** 1931 1932```ts 1933import { BusinessError } from '@kit.BasicServicesKit'; 1934 1935let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1936systemPasteboard.hasData().then((data: boolean) => { 1937 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 1938}).catch((err: BusinessError) => { 1939 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 1940}); 1941``` 1942 1943### clear<sup>(deprecated)</sup> 1944 1945clear(callback: AsyncCallback<void>): void 1946 1947清空系统剪贴板内容,使用callback异步回调。 1948> **说明:** 1949> 1950> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9)替代。 1951 1952**系统能力:** SystemCapability.MiscServices.Pasteboard 1953 1954**参数:** 1955 1956| 参数名 | 类型 | 必填 | 说明 | 1957| -------- | -------- | -------- | -------- | 1958| callback | AsyncCallback<void> | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 | 1959 1960**错误码:** 1961 1962以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1963 1964| 错误码ID | 错误信息 | 1965| -------- | -------- | 1966| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 1967 1968**示例:** 1969 1970```ts 1971let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 1972systemPasteboard.clear((err, data) => { 1973 if (err) { 1974 console.error(`Failed to clear the PasteData. Cause: ${err.message}`); 1975 return; 1976 } 1977 console.info('Succeeded in clearing the PasteData.'); 1978}); 1979``` 1980 1981### clear<sup>(deprecated)</sup> 1982 1983clear(): Promise<void> 1984 1985清空系统剪贴板内容,使用Promise异步回调。 1986> **说明:** 1987> 1988> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9-1)替代。 1989 1990**系统能力:** SystemCapability.MiscServices.Pasteboard 1991 1992**返回值:** 1993 1994| 类型 | 说明 | 1995| -------- | -------- | 1996| Promise<void> | 无返回结果的Promise对象。 | 1997 1998**示例:** 1999 2000```ts 2001import { BusinessError } from '@kit.BasicServicesKit'; 2002 2003let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2004systemPasteboard.clear().then((data) => { 2005 console.info('Succeeded in clearing the PasteData.'); 2006}).catch((err: BusinessError) => { 2007 console.error(`Failed to clear the PasteData. Cause: ${err.message}`); 2008}); 2009``` 2010 2011### getPasteData<sup>(deprecated)</sup> 2012 2013getPasteData( callback: AsyncCallback<PasteData>): void 2014 2015读取系统剪贴板内容,使用callback异步回调。 2016> **说明:** 2017> 2018> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9)替代。 2019 2020**系统能力:** SystemCapability.MiscServices.Pasteboard 2021 2022**参数:** 2023 2024| 参数名 | 类型 | 必填 | 说明 | 2025| -------- | -------- | -------- | -------- | 2026| callback | AsyncCallback<[PasteData](#pastedata)> | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 | 2027 2028**错误码:** 2029 2030以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2031 2032| 错误码ID | 错误信息 | 2033| -------- | -------- | 2034| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 2035 2036**示例:** 2037 2038```ts 2039import { BusinessError } from '@kit.BasicServicesKit'; 2040 2041let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2042systemPasteboard.getPasteData((err: BusinessError, pasteData: pasteboard.PasteData) => { 2043 if (err) { 2044 console.error('Failed to get PasteData. Cause: ' + err.message); 2045 return; 2046 } 2047 let text: string = pasteData.getPrimaryText(); 2048}); 2049``` 2050 2051### getPasteData<sup>(deprecated)</sup> 2052 2053getPasteData(): Promise<PasteData> 2054 2055读取系统剪贴板内容,使用Promise异步回调。 2056> **说明:** 2057> 2058> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9-1)替代。 2059 2060**系统能力:** SystemCapability.MiscServices.Pasteboard 2061 2062**返回值:** 2063 2064| 类型 | 说明 | 2065| -------- | -------- | 2066| Promise<[PasteData](#pastedata)> | Promise对象,返回系统剪贴板数据。 | 2067 2068**示例:** 2069 2070```ts 2071import { BusinessError } from '@kit.BasicServicesKit'; 2072 2073let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2074systemPasteboard.getPasteData().then((pasteData: pasteboard.PasteData) => { 2075 let text: string = pasteData.getPrimaryText(); 2076}).catch((err: BusinessError) => { 2077 console.error('Failed to get PasteData. Cause: ' + err.message); 2078}); 2079``` 2080 2081### hasPasteData<sup>(deprecated)</sup> 2082 2083hasPasteData(callback: AsyncCallback<boolean>): void 2084 2085判断系统剪贴板中是否有内容,使用callback异步回调。 2086> **说明:** 2087> 2088> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9)替代。 2089 2090**系统能力:** SystemCapability.MiscServices.Pasteboard 2091 2092**参数:** 2093 2094| 参数名 | 类型 | 必填 | 说明 | 2095| -------- | -------- | -------- | -------- | 2096| callback | AsyncCallback<boolean> | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 2097 2098**错误码:** 2099 2100以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2101 2102| 错误码ID | 错误信息 | 2103| -------- | -------- | 2104| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 2105 2106**示例:** 2107 2108```ts 2109import { BusinessError } from '@kit.BasicServicesKit'; 2110 2111let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2112systemPasteboard.hasPasteData((err: BusinessError, data: boolean) => { 2113 if (err) { 2114 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 2115 return; 2116 } 2117 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 2118}); 2119``` 2120 2121### hasPasteData<sup>(deprecated)</sup> 2122 2123hasPasteData(): Promise<boolean> 2124 2125判断系统剪贴板中是否有内容,使用Promise异步回调。 2126> **说明:** 2127> 2128> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9-1)替代。 2129 2130**系统能力:** SystemCapability.MiscServices.Pasteboard 2131 2132**返回值:** 2133 2134| 类型 | 说明 | 2135| -------- | -------- | 2136| Promise<boolean> | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 2137 2138**示例:** 2139 2140```ts 2141import { BusinessError } from '@kit.BasicServicesKit'; 2142 2143let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2144systemPasteboard.hasPasteData().then((data: boolean) => { 2145 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 2146}).catch((err: BusinessError) => { 2147 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 2148}); 2149``` 2150 2151### setPasteData<sup>(deprecated)</sup> 2152 2153setPasteData(data: PasteData, callback: AsyncCallback<void>): void 2154 2155将数据写入系统剪贴板,使用callback异步回调。 2156> **说明:** 2157> 2158> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9)替代。 2159 2160**系统能力:** SystemCapability.MiscServices.Pasteboard 2161 2162**参数:** 2163 2164| 参数名 | 类型 | 必填 | 说明 | 2165| -------- | -------- | -------- | -------- | 2166| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 2167| callback | AsyncCallback<void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 | 2168 2169**错误码:** 2170 2171以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2172 2173| 错误码ID | 错误信息 | 2174| -------- | -------- | 2175| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 2176 2177**示例:** 2178 2179```ts 2180let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content'); 2181let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2182systemPasteboard.setPasteData(pasteData, (err, data) => { 2183 if (err) { 2184 console.error('Failed to set PasteData. Cause: ' + err.message); 2185 return; 2186 } 2187 console.info('Succeeded in setting PasteData.'); 2188}); 2189``` 2190### setPasteData<sup>(deprecated)</sup> 2191 2192setPasteData(data: PasteData): Promise<void> 2193 2194将数据写入系统剪贴板,使用Promise异步回调。 2195> **说明:** 2196> 2197> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9-1)替代。 2198 2199**系统能力:** SystemCapability.MiscServices.Pasteboard 2200 2201**参数:** 2202 2203| 参数名 | 类型 | 必填 | 说明 | 2204| -------- | -------- | -------- | -------- | 2205| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 2206 2207**返回值:** 2208 2209| 类型 | 说明 | 2210| -------- | -------- | 2211| Promise<void> | 无返回结果的Promise对象。 | 2212 2213**示例:** 2214 2215```ts 2216import { BusinessError } from '@kit.BasicServicesKit'; 2217 2218let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content'); 2219let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2220systemPasteboard.setPasteData(pasteData).then((data: void) => { 2221 console.info('Succeeded in setting PasteData.'); 2222}).catch((err: BusinessError) => { 2223 console.error('Failed to set PasteData. Cause: ' + err.message); 2224}); 2225``` 2226### isRemoteData<sup>11+</sup> 2227 2228isRemoteData(): boolean 2229 2230判断剪贴板中的数据是否来自其他设备。 2231 2232**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2233 2234**系统能力:** SystemCapability.MiscServices.Pasteboard 2235 2236**返回值:** 2237 2238| 类型 | 说明 | 2239| ------- | ------------------------------------- | 2240| boolean | 是来自其他设备返回true,否则返回false。 | 2241 2242**错误码:** 2243 2244以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2245 2246| 错误码ID | 错误信息 | 2247| -------- | -------- | 2248| 12900005 | Request timed out. | 2249 2250**示例:** 2251 2252```ts 2253let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2254try { 2255 let result: boolean = systemPasteboard.isRemoteData(); 2256 console.info(`Succeeded in checking the RemoteData. Result: ${result}`); 2257} catch (err) { 2258 console.error('Failed to check the RemoteData. Cause:' + err.message); 2259}; 2260``` 2261 2262### getDataSource<sup>11+</sup> 2263 2264getDataSource(): string 2265 2266获取数据来源。 2267 2268**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2269 2270**系统能力:** SystemCapability.MiscServices.Pasteboard 2271 2272**返回值:** 2273 2274| 类型 | 说明 | 2275| ------ | ------ | 2276| string | 数据来源。 | 2277 2278**错误码:** 2279 2280以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2281 2282| 错误码ID | 错误信息 | 2283| -------- | -------- | 2284| 12900005 | Request timed out. | 2285 2286**示例:** 2287 2288```ts 2289let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2290try { 2291 let result: string = systemPasteboard.getDataSource(); 2292 console.info(`Succeeded in getting DataSource. Result: ${result}`); 2293} catch (err) { 2294 console.error('Failed to get DataSource. Cause:' + err.message); 2295}; 2296``` 2297 2298### hasDataType<sup>11+</sup> 2299 2300hasDataType(mimeType: string): boolean 2301 2302检查剪贴板内容中是否有指定类型的数据。 2303 2304**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2305 2306**系统能力:** SystemCapability.MiscServices.Pasteboard 2307 2308**参数:** 2309 2310| 参数名 | 类型 | 必填 | 说明 | 2311| -------- | ------ | ---- | ------------------ | 2312| mimeType | string | 是 | 数据类型。 | 2313 2314**返回值:** 2315 2316| 类型 | 说明 | 2317| ------- | ------------------------------------------- | 2318| boolean | 有指定类型的数据返回true,否则返回false。 | 2319 2320**错误码:** 2321 2322以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 2323 2324| 错误码ID | 错误信息 | 2325| -------- | -------- | 2326| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 2327| 12900005 | Request timed out. | 2328 2329**示例:** 2330 2331```ts 2332let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2333try { 2334 let result: boolean = systemPasteboard.hasDataType(pasteboard.MIMETYPE_TEXT_PLAIN); 2335 console.info(`Succeeded in checking the DataType. Result: ${result}`); 2336} catch (err) { 2337 console.error('Failed to check the DataType. Cause:' + err.message); 2338}; 2339``` 2340 2341### clearDataSync<sup>11+</sup> 2342 2343clearDataSync(): void 2344 2345清空系统剪贴板内容, 此接口为同步接口。 2346 2347**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2348 2349**系统能力:** SystemCapability.MiscServices.Pasteboard 2350 2351**错误码:** 2352 2353以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2354 2355| 错误码ID | 错误信息 | 2356| -------- | -------- | 2357| 12900005 | Request timed out. | 2358 2359**示例:** 2360 2361```ts 2362let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2363try { 2364 systemPasteboard.clearDataSync(); 2365 console.info('Succeeded in clearing the pasteboard.'); 2366} catch (err) { 2367 console.error('Failed to clear the pasteboard. Cause:' + err.message); 2368}; 2369``` 2370 2371### getDataSync<sup>11+</sup> 2372 2373getDataSync(): PasteData 2374 2375读取系统剪贴板内容, 此接口为同步接口。 2376 2377**需要权限**:ohos.permission.READ_PASTEBOARD 2378 2379**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2380 2381**系统能力:** SystemCapability.MiscServices.Pasteboard 2382 2383**返回值:** 2384 2385| 类型 | 说明 | 2386| ----------------------- | -------------------- | 2387| [PasteData](#pastedata) | 返回系统剪贴板数据。 | 2388 2389**错误码:** 2390 2391以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 2392 2393| 错误码ID | 错误信息 | 2394| -------- | -------- | 2395| 12900005 | Request timed out. | 2396| 201 | Permission verification failed. The application does not have the permission required to call the API. | 2397 2398**示例:** 2399 2400```ts 2401let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2402try { 2403 let result: pasteboard.PasteData = systemPasteboard.getDataSync(); 2404 console.info('Succeeded in getting PasteData.'); 2405} catch (err) { 2406 console.error('Failed to get PasteData. Cause:' + err.message); 2407}; 2408``` 2409 2410### setDataSync<sup>11+</sup> 2411 2412setDataSync(data: PasteData): void 2413 2414将数据写入系统剪贴板, 此接口为同步接口。 2415 2416**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2417 2418**系统能力:** SystemCapability.MiscServices.Pasteboard 2419 2420**参数:** 2421 2422| 参数名 | 类型 | 必填 | 说明 | 2423| ------ | ----------------------- | ---- | ---------------- | 2424| data | [PasteData](#pastedata) | 是 | 需要写入剪贴板中的数据。 | 2425 2426**错误码:** 2427 2428以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。 2429 2430| 错误码ID | 错误信息 | 2431| -------- | -------- | 2432| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 2433| 12900005 | Request timed out. | 2434 2435**示例:** 2436 2437```ts 2438let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 2439let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2440try { 2441 systemPasteboard.setDataSync(pasteData); 2442 console.info('Succeeded in setting PasteData.'); 2443} catch (err) { 2444 console.error('Failed to set PasteData. Cause:' + err.message); 2445}; 2446``` 2447 2448### hasDataSync<sup>11+</sup> 2449 2450hasDataSync(): boolean 2451 2452判断系统剪贴板中是否有内容, 此接口为同步接口。 2453 2454**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2455 2456**系统能力:** SystemCapability.MiscServices.Pasteboard 2457 2458**返回值:** 2459 2460| 类型 | 说明 | 2461| ------- | ----------------------------------------------------------------------- | 2462| boolean | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 2463 2464**错误码:** 2465 2466以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2467 2468| 错误码ID | 错误信息 | 2469| -------- | -------- | 2470| 12900005 | Request timed out. | 2471 2472**示例:** 2473 2474```ts 2475let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2476try { 2477 let result: boolean = systemPasteboard.hasDataSync(); 2478 console.info(`Succeeded in checking the PasteData. Result: ${result}`); 2479} catch (err) { 2480 console.error('Failed to check the PasteData. Cause:' + err.message); 2481}; 2482``` 2483 2484### getUnifiedData<sup>12+</sup> 2485 2486getUnifiedData(): Promise<unifiedDataChannel.UnifiedData> 2487 2488读取系统剪贴板内容,使用Promise异步回调。 2489 2490**需要权限**:ohos.permission.READ_PASTEBOARD 2491 2492**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2493 2494**系统能力:** SystemCapability.MiscServices.Pasteboard 2495 2496**返回值:** 2497 2498| 类型 | 说明 | 2499| -------- | -------- | 2500| Promise<[unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata)> | Promise对象,返回系统剪贴板数据。 | 2501 2502**错误码:** 2503 2504以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2505 2506| 错误码ID | 错误信息 | 2507| -------- | -------- | 2508| 201 | Permission verification failed. The application does not have the permission required to call the API. | 2509| 12900003 | Another copy or paste operation is in progress. | 2510 2511**示例:** 2512 2513```ts 2514import { BusinessError } from '@kit.BasicServicesKit'; 2515import { unifiedDataChannel } from '@kit.ArkData'; 2516import { uniformTypeDescriptor } from '@kit.ArkData'; 2517 2518let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2519systemPasteboard.getUnifiedData().then((data) => { 2520 let records: Array<unifiedDataChannel.UnifiedRecord> = data.getRecords(); 2521 for (let j = 0; j < records.length; j++) { 2522 if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) { 2523 let text = records[j] as unifiedDataChannel.PlainText; 2524 console.info(`${j + 1}.${text.textContent}`); 2525 } 2526 } 2527}).catch((err: BusinessError) => { 2528 console.error('Failed to get UnifiedData. Cause: ' + err.message); 2529}); 2530``` 2531 2532### getUnifiedDataSync<sup>12+</sup> 2533 2534getUnifiedDataSync(): unifiedDataChannel.UnifiedData 2535 2536读取系统剪贴板内容, 此接口为同步接口。 2537 2538**需要权限**:ohos.permission.READ_PASTEBOARD 2539 2540**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2541 2542**系统能力:** SystemCapability.MiscServices.Pasteboard 2543 2544**返回值:** 2545 2546| 类型 | 说明 | 2547| -------------------- | -------------------- | 2548| [unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata) | 返回系统剪贴板数据。 | 2549 2550**错误码:** 2551 2552以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2553 2554| 错误码ID | 错误信息 | 2555| -------- | -------- | 2556| 201 | Permission verification failed. The application does not have the permission required to call the API. | 2557| 12900005 | Request timed out. | 2558 2559**示例:** 2560 2561```ts 2562import { unifiedDataChannel } from '@kit.ArkData'; 2563 2564let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2565try { 2566 let result: unifiedDataChannel.UnifiedData = systemPasteboard.getUnifiedDataSync(); 2567 console.info('Succeeded in getting UnifiedData.'); 2568} catch (err) { 2569 console.error('Failed to get UnifiedData. Cause:' + err.message); 2570}; 2571``` 2572 2573### setUnifiedData<sup>12+</sup> 2574 2575setUnifiedData(data: unifiedDataChannel.UnifiedData): Promise<void> 2576 2577将数据写入系统剪贴板,使用Promise异步回调。 2578 2579**系统能力:** SystemCapability.MiscServices.Pasteboard 2580 2581**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2582 2583**参数:** 2584 2585| 参数名 | 类型 | 必填 | 说明 | 2586| -------- | -------- | -------- | -------- | 2587| data | [unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata) | 是 | 需要写入剪贴板中的数据。 | 2588 2589**返回值:** 2590 2591| 类型 | 说明 | 2592| -------- | -------- | 2593| Promise<void> | 无返回结果的Promise对象。 | 2594 2595**错误码:** 2596 2597以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2598 2599| 错误码ID | 错误信息 | 2600| -------- | -------- | 2601| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 2602| 12900003 | Another copy or paste operation is in progress. | 2603| 12900004 | Replication is prohibited. | 2604 2605**示例:** 2606 2607```ts 2608import { BusinessError } from '@kit.BasicServicesKit'; 2609import { unifiedDataChannel } from '@kit.ArkData'; 2610 2611let plainTextData = new unifiedDataChannel.UnifiedData(); 2612let plainText = new unifiedDataChannel.PlainText(); 2613plainText.details = { 2614 Key: 'delayPlaintext', 2615 Value: 'delayPlaintext', 2616}; 2617plainText.textContent = 'delayTextContent'; 2618plainText.abstract = 'delayTextContent'; 2619plainTextData.addRecord(plainText); 2620 2621let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2622systemPasteboard.setUnifiedData(plainTextData).then((data: void) => { 2623 console.info('Succeeded in setting UnifiedData.'); 2624}).catch((err: BusinessError) => { 2625 console.error('Failed to set UnifiedData. Cause: ' + err.message); 2626}); 2627``` 2628 2629### setUnifiedDataSync<sup>12+</sup> 2630 2631setUnifiedDataSync(data: unifiedDataChannel.UnifiedData): void 2632 2633将数据写入系统剪贴板, 此接口为同步接口。 2634 2635**系统能力:** SystemCapability.MiscServices.Pasteboard 2636 2637**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2638 2639**参数:** 2640 2641| 参数名 | 类型 | 必填 | 说明 | 2642| ------ | ----------- | ---- | ---------------- | 2643| data | [unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata) | 是 | 需要写入剪贴板中的数据。 | 2644 2645**错误码:** 2646 2647以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2648 2649| 错误码ID | 错误信息 | 2650| -------- | -------- | 2651| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 2652| 12900005 | Request timed out. | 2653 2654**示例:** 2655 2656```ts 2657import { unifiedDataChannel } from '@kit.ArkData'; 2658 2659let plainTextData = new unifiedDataChannel.UnifiedData(); 2660let plainText = new unifiedDataChannel.PlainText(); 2661plainText.details = { 2662 Key: 'delayPlaintext', 2663 Value: 'delayPlaintext', 2664}; 2665plainText.textContent = 'delayTextContent'; 2666plainText.abstract = 'delayTextContent'; 2667plainTextData.addRecord(plainText); 2668 2669let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2670try { 2671 systemPasteboard.setUnifiedDataSync(plainTextData); 2672 console.info('Succeeded in setting UnifiedData.'); 2673} catch (err) { 2674 console.error('Failed to set UnifiedData. Cause:' + err.message); 2675}; 2676``` 2677 2678### setAppShareOptions<sup>14+</sup> 2679 2680setAppShareOptions(shareOptions: ShareOption): void 2681 2682应用设置本应用剪贴板数据的可粘贴范围。 2683 2684**需要权限**:ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION 2685 2686**系统能力:** SystemCapability.MiscServices.Pasteboard 2687 2688**参数:** 2689 2690| 参数名 | 类型 | 必填 | 说明 | 2691| -------- | -------- | -------- | -------- | 2692| shareOptions | [ShareOption](js-apis-pasteboard.md#shareoption9) | 是 | 可粘贴的范围,参数只允许pasteboard.ShareOption.INAPP。| 2693 2694**错误码:** 2695 2696以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2697 2698| 错误码ID | 错误信息 | 2699| -------- | -------- | 2700| 201 | Permission verification failed. The application does not have the permission required to call the API. | 2701| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2702| 12900006 | Settings already exist. | 2703 2704**示例:** 2705 2706```ts 2707import { BusinessError } from '@kit.BasicServicesKit'; 2708 2709let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2710try { 2711 systemPasteboard.setAppShareOptions(pasteboard.ShareOption.INAPP); 2712 console.info('Set app share options success.'); 2713} catch (err) { 2714 let error: BusinessError = err as BusinessError; 2715 console.error(`Set app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`); 2716} 2717``` 2718 2719### removeAppShareOptions<sup>14+</sup> 2720 2721removeAppShareOptions(): void 2722 2723删除应用全局的可粘贴的范围。 2724 2725**需要权限**:ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION 2726 2727**系统能力:** SystemCapability.MiscServices.Pasteboard 2728 2729**错误码:** 2730 2731以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。 2732 2733| 错误码ID | 错误信息 | 2734| -------- | -------- | 2735| 201 | Permission verification failed. The application does not have the permission required to call the API. | 2736 2737**示例:** 2738 2739```ts 2740import { BusinessError } from '@kit.BasicServicesKit'; 2741 2742let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2743try { 2744 systemPasteboard.removeAppShareOptions(); 2745 console.info('Remove app share options success.'); 2746} catch (err) { 2747 let error: BusinessError = err as BusinessError; 2748 console.error(`Remove app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`); 2749} 2750``` 2751 2752### Pattern<sup>13+</sup> 2753剪贴板支持检测的模式类型。 2754 2755**系统能力:** SystemCapability.MiscServices.Pasteboard 2756 2757| 名称 | 值 | 说明 | 2758| ---------------------------------- | --- | ------------------------------------------------------------------------------------- | 2759| URL | 0 | URL类型。 | 2760| NUMBER | 1 | 数字类型。 | 2761| EMAIL_ADDRESS | 2 | 邮箱地址类型。 | 2762 2763### detectPatterns<sup>13+</sup> 2764 2765detectPatterns(patterns: Array<Pattern>): Promise<Array<Pattern>> 2766 2767检测**本地**剪贴板中存在的模式,使用Promise异步回调。 2768 2769**系统能力:** SystemCapability.MiscServices.Pasteboard 2770 2771**参数:** 2772 2773| 参数名 | 类型 | 必填 | 说明 | 2774| -------- | -------- | -------- | -------- | 2775| patterns | [Array<Pattern>](#pattern13) | 是 | 需要在剪贴板中检测的模式。 | 2776 2777**返回值:** 2778 2779| 类型 | 说明 | 2780| -------- | -------- | 2781| Promise<Array<Pattern>> | Promise对象,返回检测到的模式 | 2782 2783**错误码:** 2784 2785以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2786 2787| 错误码ID | 错误信息 | 2788| -------- | -------- | 2789| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed. | 2790 2791**示例:** 2792 2793```ts 2794import { pasteboard } from '@kit.BasicServicesKit' 2795 2796let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2797let patterns: Array<pasteboard.Pattern> = [pasteboard.Pattern.URL, pasteboard.Pattern.EMAIL_ADDRESS]; 2798 2799systemPasteboard.detectPatterns(patterns).then((data: Array<pasteboard.Pattern>) => { 2800 if (patterns.sort().join('')==data.sort().join('')) { 2801 console.info('All needed patterns detected, next get data'); 2802 try { 2803 let result: pasteboard.PasteData = systemPasteboard.getDataSync(); 2804 console.info('Succeeded in getting PasteData.'); 2805 } catch (err) { 2806 console.error('Failed to get PasteData. Cause:' + err.message); 2807 }; 2808 } else { 2809 console.info("Not all needed patterns detected, no need to get data."); 2810 } 2811}); 2812``` 2813 2814### getMimeTypes<sup>14+</sup> 2815 2816getMimeTypes(): Promise<Array<string>> 2817 2818读取剪贴板中存在的MIME类型,使用Promise异步回调。 2819 2820**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 2821 2822**系统能力:** SystemCapability.MiscServices.Pasteboard 2823 2824**返回值:** 2825 2826| 类型 | 说明 | 2827| -------- | -------- | 2828| Promise<Array<string>> | Promise对象,返回读取到的MIME类型 | 2829 2830**示例:** 2831 2832```ts 2833import { pasteboard, BusinessError } from '@kit.BasicServicesKit' 2834 2835let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard(); 2836systemPasteboard.getMimeTypes().then((data: Array<String>) => { 2837 console.info('Succeeded in getting mimeTypes. mimeTypes: ' + data.sort().join(',')); 2838}).catch((err: BusinessError) => { 2839 console.error('Failed to get mimeTypes. Cause:' + err.message); 2840}); 2841```