1# @ohos.pasteboard (剪贴板) 2 3本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。系统剪贴板支持对文本、HTML、URI、Want、PixelMap等内容的操作。 4 5> **说明:** 6> 7> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```js 12import pasteboard from '@ohos.pasteboard'; 13``` 14 15## 常量 16 17**系统能力:** SystemCapability.MiscServices.Pasteboard 18 19| 名称 | 类型 | 值 | 说明 | 20| -------- | -------- | -------- | -------- | 21| MAX_RECORD_NUM<sup>7+</sup> | number | 512 | 单个PasteData中所能包含的最大条目数。 | 22| MIMETYPE_TEXT_HTML<sup>7+</sup> | string | 'text/html' | HTML内容的MIME类型定义。 | 23| MIMETYPE_TEXT_WANT<sup>7+</sup> | string | 'text/want' | Want内容的MIME类型定义。 | 24| MIMETYPE_TEXT_PLAIN<sup>7+</sup> | string | 'text/plain' | 纯文本内容的MIME类型定义。 | 25| MIMETYPE_TEXT_URI<sup>7+</sup> | string | 'text/uri' | URI内容的MIME类型定义。 | 26| MIMETYPE_PIXELMAP<sup>9+</sup> | string | 'pixelMap' | PixelMap内容的MIME类型定义。 | 27 28## ValueType<sup>9+</sup> 29 30用于表示允许的数据字段类型。 31 32**系统能力:** SystemCapability.MiscServices.Pasteboard 33 34| 类型 | 说明 | 35| -------- | -------- | 36| string | 表示string的类型。 | 37| image.PixelMap | 表示[image.PixelMap](js-apis-image.md#pixelmap7)的类型。 | 38| Want | 表示[Want](js-apis-app-ability-want.md)的类型。 | 39| ArrayBuffer | 表示ArrayBuffer的类型。 | 40 41## pasteboard.createData<sup>9+</sup> 42 43createData(mimeType: string, value: ValueType): PasteData 44 45构建一个自定义类型的剪贴板内容对象。 46 47**系统能力:** SystemCapability.MiscServices.Pasteboard 48 49**参数:** 50 51| 参数名 | 类型 | 必填 | 说明 | 52| -------- | -------- | -------- | -------- | 53| mimeType | string | 是 | 自定义数据的MIME类型。 | 54| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 | 55 56**返回值:** 57 58| 类型 | 说明 | 59| -------- | -------- | 60| [PasteData](#pastedata) | 剪贴板内容对象。 | 61 62**示例:** 63 64 ```js 65 let dataXml = new ArrayBuffer(256); 66let pasteData = pasteboard.createData('app/xml', dataXml); 67 ``` 68 69## pasteboard.createRecord<sup>9+</sup> 70 71createRecord(mimeType: string, value: ValueType):PasteDataRecord; 72 73创建一条自定义数据内容条目。 74 75**系统能力:** SystemCapability.MiscServices.Pasteboard 76 77**参数:** 78 79| 参数名 | 类型 | 必填 | 说明 | 80| -------- | -------- | -------- | -------- | 81| mimeType | string | 是 | 自定义数据的MIME类型。 | 82| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 | 83 84**返回值:** 85 86| 类型 | 说明 | 87| -------- | -------- | 88| [PasteDataRecord](#pastedatarecord7) | 一条新建的自定义数据内容条目。 | 89 90**示例:** 91 92 ```js 93let dataXml = new ArrayBuffer(256); 94let pasteDataRecord = pasteboard.createRecord('app/xml', dataXml); 95 ``` 96 97## pasteboard.getSystemPasteboard 98 99getSystemPasteboard(): SystemPasteboard 100 101获取系统剪贴板对象。 102 103**系统能力:** SystemCapability.MiscServices.Pasteboard 104 105**返回值:** 106 107| 类型 | 说明 | 108| -------- | -------- | 109| [SystemPasteboard](#systempasteboard) | 系统剪贴板对象。 | 110 111**示例:** 112 113```js 114let systemPasteboard = pasteboard.getSystemPasteboard(); 115``` 116 117## ShareOption<sup>9+</sup> 118 119可粘贴数据的范围类型枚举。 120 121**系统能力:** SystemCapability.MiscServices.Pasteboard 122 123| 名称 | 值 | 说明 | 124|-------------|---|-------------------| 125| INAPP | 0 | 表示仅允许同应用内粘贴。 | 126| LOCALDEVICE | 1 | 表示允许在此设备中任何应用内粘贴。 | 127| CROSSDEVICE | 2 | 表示允许跨设备在任何应用内粘贴。 | 128 129## pasteboard.createHtmlData<sup>(deprecated)</sup> 130 131createHtmlData(htmlText: string): PasteData 132 133构建一个HTML剪贴板内容对象。 134> **说明:** 135> 136> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 137 138**系统能力:** SystemCapability.MiscServices.Pasteboard 139 140**参数:** 141 142| 参数名 | 类型 | 必填 | 说明 | 143| -------- | -------- | -------- | -------- | 144| htmlText | string | 是 | HTML内容。 | 145 146**返回值:** 147 148| 类型 | 说明 | 149| -------- | -------- | 150| [PasteData](#pastedata) | 剪贴板内容对象。 | 151 152**示例:** 153 154```js 155let 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>"; 156let pasteData = pasteboard.createHtmlData(html); 157``` 158 159## pasteboard.createWantData<sup>(deprecated)</sup> 160 161createWantData(want: Want): PasteData 162 163构建一个Want剪贴板内容对象。 164> **说明:** 165> 166> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 167 168**系统能力:** SystemCapability.MiscServices.Pasteboard 169 170**参数:** 171 172| 参数名 | 类型 | 必填 | 说明 | 173| -------- | -------- | -------- | -------- | 174| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 | 175 176**返回值:** 177 178| 类型 | 说明 | 179| -------- | -------- | 180| [PasteData](#pastedata) | 剪贴板内容对象。 | 181 182**示例:** 183 184```js 185let object = { 186 bundleName: "com.example.aafwk.test", 187 abilityName: "com.example.aafwk.test.TwoAbility" 188}; 189let pasteData = pasteboard.createWantData(object); 190``` 191 192## pasteboard.createPlainTextData<sup>(deprecated)</sup> 193 194createPlainTextData(text: string): PasteData 195 196构建一个纯文本剪贴板内容对象。 197> **说明:** 198> 199> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 200 201**系统能力:** SystemCapability.MiscServices.Pasteboard 202 203**参数:** 204 205| 参数名 | 类型 | 必填 | 说明 | 206| -------- | -------- | -------- | -------- | 207| text | string | 是 | 纯文本内容。 | 208 209**返回值:** 210 211| 类型 | 说明 | 212| -------- | -------- | 213| [PasteData](#pastedata) | 剪贴板内容对象。 | 214 215**示例:** 216 217```js 218let pasteData = pasteboard.createPlainTextData('content'); 219``` 220 221## pasteboard.createUriData<sup>(deprecated)</sup> 222 223createUriData(uri: string): PasteData 224 225构建一个URI剪贴板内容对象。 226> **说明:** 227> 228> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。 229 230**系统能力:** SystemCapability.MiscServices.Pasteboard 231 232**参数:** 233 234| 参数名 | 类型 | 必填 | 说明 | 235| -------- | -------- | -------- | -------- | 236| uri | string | 是 | URI内容。 | 237 238**返回值:** 239 240| 类型 | 说明 | 241| -------- | -------- | 242| [PasteData](#pastedata) | 剪贴板内容对象。 | 243 244**示例:** 245 246```js 247let pasteData = pasteboard.createUriData('dataability:///com.example.myapplication1/user.txt'); 248``` 249## pasteboard.createHtmlTextRecord<sup>(deprecated)</sup> 250 251createHtmlTextRecord(htmlText: string): PasteDataRecord 252 253创建一条HTML内容的条目。 254> **说明:** 255> 256> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 257 258**系统能力:** SystemCapability.MiscServices.Pasteboard 259 260**参数:** 261 262| 参数名 | 类型 | 必填 | 说明 | 263| -------- | -------- | -------- | -------- | 264| htmlText | string | 是 | HTML内容。 | 265 266**返回值:** 267 268| 类型 | 说明 | 269| -------- | -------- | 270| [PasteDataRecord](#pastedatarecord7) | 一条新建的HTML内容条目。 | 271 272**示例:** 273 274```js 275let 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>"; 276let record = pasteboard.createHtmlTextRecord(html); 277``` 278 279## pasteboard.createWantRecord<sup>(deprecated)</sup> 280 281createWantRecord(want: Want): PasteDataRecord 282 283创建一条Want内容条目。 284> **说明:** 285> 286> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 287 288**系统能力:** SystemCapability.MiscServices.Pasteboard 289 290**参数:** 291 292| 参数名 | 类型 | 必填 | 说明 | 293| -------- | -------- | -------- | -------- | 294| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 | 295 296**返回值:** 297 298| 类型 | 说明 | 299| -------- | -------- | 300| [PasteDataRecord](#pastedatarecord7) | 一条新建的Want内容条目。 | 301 302**示例:** 303 304```js 305let object = { 306 bundleName: "com.example.aafwk.test", 307 abilityName: "com.example.aafwk.test.TwoAbility" 308}; 309let record = pasteboard.createWantRecord(object); 310``` 311 312## pasteboard.createPlainTextRecord<sup>(deprecated)</sup> 313 314createPlainTextRecord(text: string): PasteDataRecord 315 316创建一条纯文本内容条目。 317> **说明:** 318> 319> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 320 321**系统能力:** SystemCapability.MiscServices.Pasteboard 322 323**参数:** 324 325| 参数名 | 类型 | 必填 | 说明 | 326| -------- | -------- | -------- | -------- | 327| text | string | 是 | 纯文本内容。 | 328 329**返回值:** 330 331| 类型 | 说明 | 332| -------- | -------- | 333| [PasteDataRecord](#pastedatarecord7) | 一条新建的纯文本内容条目。 | 334 335**示例:** 336 337```js 338let record = pasteboard.createPlainTextRecord('hello'); 339``` 340 341## pasteboard.createUriRecord<sup>(deprecated)</sup> 342 343createUriRecord(uri: string): PasteDataRecord 344 345创建一条URI内容的条目。 346> **说明:** 347> 348> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。 349 350**系统能力:** SystemCapability.MiscServices.Pasteboard 351 352**参数:** 353 354| 参数名 | 类型 | 必填 | 说明 | 355| -------- | -------- | -------- | -------- | 356| uri | string | 是 | URI内容。 | 357 358**返回值:** 359 360| 类型 | 说明 | 361| -------- | -------- | 362| [PasteDataRecord](#pastedatarecord7) | 一条新建的URI内容条目。 | 363 364**示例:** 365 366```js 367let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 368``` 369 370 371## PasteDataProperty<sup>7+</sup> 372 373定义了剪贴板中所有内容条目的属性,包含时间戳、数据类型、粘贴范围以及一些附加数据等。 374 375**系统能力:** SystemCapability.MiscServices.Pasteboard 376 377| 名称 | 类型 | 可读 | 可写 | 说明 | 378| -------- | -------- | -------- | -------- |--------------------------------------------------------------------------------------------| 379| additions<sup>7+</sup> | {[key:string]:object} | 是 | 是 | 设置其他附加属性数据。 | 380| mimeTypes<sup>7+</sup> | Array<string> | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。 | 381| tag<sup>7+</sup> | string | 是 | 是 | 用户自定义标签。 | 382| timestamp<sup>7+</sup> | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。 | 383| localOnly<sup>7+</sup> | boolean | 是 | 是 | 配置剪贴板内容是否为“仅在本地”,默认值为false。暂不支持,推荐使用shareOption属性。<br/>- 配置为true时,表示内容仅在本地,不会在设备之间传递。<br/>- 配置为false时,表示内容将在设备间传递。 | 384| shareOption<sup>9+</sup> | [ShareOption](#shareoption9) | 是 | 是 | 指示剪贴板数据可以粘贴到的范围,如果未设置或设置不正确,则默认值为CROSSDEVICE。 | 385 386## PasteDataRecord<sup>7+</sup> 387 388对于剪贴板中内容记录的抽象定义,称之为条目。剪贴板内容部分由一个或者多个条目构成,例如一条文本内容、一份HTML、一个URI或者一个Want。 389 390### 属性 391 392**系统能力:** SystemCapability.MiscServices.Pasteboard 393 394| 名称 | 类型 | 可读 | 可写 | 说明 | 395| -------- | -------- | -------- | -------- | -------- | 396| htmlText<sup>7+</sup> | string | 是 | 否 | HTML内容。 | 397| want<sup>7+</sup> | [Want](js-apis-app-ability-want.md) | 是 | 否 | Want内容。 | 398| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 | 399| plainText<sup>7+</sup> | string | 是 | 否 | 纯文本内容。 | 400| uri<sup>7+</sup> | string | 是 | 否 | URI内容。 | 401| pixelMap<sup>9+</sup> | [image.PixelMap](js-apis-image.md#pixelmap7) | 是 | 否 | PixelMap内容。 | 402| data<sup>9+</sup> | {[mimeType: string]: ArrayBuffer} | 是 | 否 | 自定义数据内容。 | 403 404### toPlainText<sup>9+</sup> 405 406toPlainText(): string 407 408将一个PasteData中的内容强制转换为文本内容。 409 410**系统能力:** SystemCapability.MiscServices.Pasteboard 411 412**返回值:** 413 414| 类型 | 说明 | 415| -------- | -------- | 416| string | 纯文本内容。 | 417 418**示例:** 419 420```js 421let record = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 422let data = record.toPlainText(); 423console.info(`Succeeded in converting to text. Data: ${data}`); 424``` 425 426### convertToText<sup>(deprecated)</sup> 427 428convertToText(callback: AsyncCallback<string>): void 429 430将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。 431> **说明:** 432> 433> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。 434 435**系统能力:** SystemCapability.MiscServices.Pasteboard 436 437**参数:** 438 439| 参数名 | 类型 | 必填 | 说明 | 440| -------- | -------- | -------- | -------- | 441| callback | AsyncCallback<string> | 是 | 回调函数,当转换成功,err为undefined,data为强制转换的文本内容;否则返回错误信息。 | 442 443**示例:** 444 445```js 446let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 447record.convertToText((err, data) => { 448 if (err) { 449 console.error(`Failed to convert to text. Cause: ${err.message}`); 450 return; 451 } 452 console.info(`Succeeded in converting to text. Data: ${data}`); 453}); 454``` 455 456### convertToText<sup>(deprecated)</sup> 457 458convertToText(): Promise<string> 459 460将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。 461> **说明:** 462> 463> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。 464 465**系统能力:** SystemCapability.MiscServices.Pasteboard 466 467**返回值:** 468 469| 类型 | 说明 | 470| -------- | -------- | 471| Promise<string> | Promise对象,返回强制转换的文本内容。 | 472 473**示例:** 474 475```js 476let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 477record.convertToText().then((data) => { 478 console.info(`Succeeded in converting to text. Data: ${data}`); 479}).catch((err) => { 480 console.error(`Failed to convert to text. Cause: ${err.message}`); 481}); 482``` 483 484## PasteData 485 486剪贴板内容对象。剪贴板内容包含一个或者多个内容条目([PasteDataRecord](#pastedatarecord7))以及属性描述对象([PasteDataProperty](#pastedataproperty7))。 487 488在调用PasteData的接口前,需要先通过[createData()](#pasteboardcreatedata9)或[getData()](#getdata9)获取一个PasteData对象。 489 490**系统能力:** SystemCapability.MiscServices.Pasteboard 491 492### getPrimaryText 493 494getPrimaryText(): string 495 496获取首个条目的纯文本内容。 497 498**系统能力:** SystemCapability.MiscServices.Pasteboard 499 500**返回值:** 501 502| 类型 | 说明 | 503| -------- | -------- | 504| string | 纯文本内容。 | 505 506**示例:** 507 508```js 509let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 510let plainText = pasteData.getPrimaryText(); 511``` 512 513### getPrimaryHtml<sup>7+</sup> 514 515getPrimaryHtml(): string 516 517获取首个条目的HTML内容。 518 519**系统能力:** SystemCapability.MiscServices.Pasteboard 520 521**返回值:** 522 523| 类型 | 说明 | 524| -------- | -------- | 525| string | HTML内容。 | 526 527**示例:** 528 529```js 530let 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>"; 531let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, html); 532let htmlText = pasteData.getPrimaryHtml(); 533``` 534 535### getPrimaryWant<sup>7+</sup> 536 537getPrimaryWant(): Want 538 539获取首个条目的Want对象内容。 540 541**系统能力:** SystemCapability.MiscServices.Pasteboard 542 543**返回值:** 544 545| 类型 | 说明 | 546| -------- | -------- | 547| [Want](js-apis-app-ability-want.md) | Want对象内容。 | 548 549**示例:** 550 551```js 552let object = { 553 bundleName: "com.example.aafwk.test", 554 abilityName: "com.example.aafwk.test.TwoAbility" 555}; 556let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, object); 557let want = pasteData.getPrimaryWant(); 558``` 559 560### getPrimaryUri<sup>7+</sup> 561 562getPrimaryUri(): string 563 564获取首个条目的URI内容。 565 566**系统能力:** SystemCapability.MiscServices.Pasteboard 567 568**返回值:** 569 570| 类型 | 说明 | 571| -------- | -------- | 572| string | URI内容。 | 573 574**示例:** 575 576```js 577let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 578let uri = pasteData.getPrimaryUri(); 579``` 580 581### getPrimaryPixelMap<sup>9+</sup> 582 583getPrimaryPixelMap(): image.PixelMap 584 585获取首个条目的PixelMap内容。 586 587**系统能力:** SystemCapability.MiscServices.Pasteboard 588 589**返回值:** 590 591| 类型 | 说明 | 592| -------- | -------- | 593| [image.PixelMap](js-apis-image.md#pixelmap7) | PixelMap内容。 | 594 595**示例:** 596 597```js 598import image from '@ohos.multimedia.image'; 599 600let buffer = new ArrayBuffer(128); 601let opt = { 602 size: { height: 3, width: 5 }, 603 pixelFormat: 3, 604 editable: true, 605 alphaType: 1, 606 scaleMode: 1 607}; 608image.createPixelMap(buffer, opt).then((pixelMap) => { 609 let pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 610 let PixelMap = pasteData.getPrimaryPixelMap(); 611}); 612``` 613 614### addRecord<sup>7+</sup> 615 616addRecord(record: PasteDataRecord): void 617 618向当前剪贴板内容中添加一条条目,同时也会将条目类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 619 620剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。 621 622**系统能力:** SystemCapability.MiscServices.Pasteboard 623 624**参数:** 625 626| 参数名 | 类型 | 必填 | 说明 | 627| -------- | -------- | -------- | -------- | 628| record | [PasteDataRecord](#pastedatarecord7) | 是 | 待添加的条目。 | 629 630**示例:** 631 632```js 633let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 634let textRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 635let 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>"; 636let htmlRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, html); 637pasteData.addRecord(textRecord); 638pasteData.addRecord(htmlRecord); 639``` 640### addRecord<sup>9+</sup> 641 642addRecord(mimeType: string, value: ValueType): void 643 644向当前剪贴板内容中添加一条自定义数据内容条目,同时也会将自定义数据类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 645 646剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。 647 648**系统能力:** SystemCapability.MiscServices.Pasteboard 649 650**参数:** 651 652| 参数名 | 类型 | 必填 | 说明 | 653| -------- | -------- | -------- | -------- | 654| mimeType | string | 是 | 自定义数据的MIME类型。 | 655| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 | 656 657**错误码:** 658 659以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 660 661| 错误码ID | 错误信息 | 662| -------- | -------- | 663| 12900002 | The number of record exceeds the maximum limit. | 664 665**示例:** 666 667 ```js 668 let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 669 let dataXml = new ArrayBuffer(256); 670 pasteData.addRecord('app/xml', dataXml); 671 ``` 672 673### getMimeTypes<sup>7+</sup> 674 675getMimeTypes(): Array<string> 676 677获取剪贴板中[PasteDataProperty](#pastedataproperty7)的mimeTypes列表,当剪贴板内容为空时,返回列表为空。 678 679**系统能力:** SystemCapability.MiscServices.Pasteboard 680 681**返回值:** 682 683| 类型 | 说明 | 684| -------- | -------- | 685| Array<string> | 剪贴板内容条目的数据类型,非重复的类型列表。 | 686 687**示例:** 688 689```js 690let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 691let types = pasteData.getMimeTypes(); 692``` 693 694### getPrimaryMimeType<sup>7+</sup> 695 696getPrimaryMimeType(): string 697 698获取剪贴板内容中首个条目的数据类型。 699 700**系统能力:** SystemCapability.MiscServices.Pasteboard 701 702**返回值:** 703 704| 类型 | 说明 | 705| -------- | -------- | 706| string | 首个条目的数据类型。 | 707 708**示例:** 709 710```js 711let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 712let type = pasteData.getPrimaryMimeType(); 713``` 714 715### getProperty<sup>7+</sup> 716 717getProperty(): PasteDataProperty 718 719获取剪贴板内容的属性描述对象。 720 721**系统能力:** SystemCapability.MiscServices.Pasteboard 722 723**返回值:** 724 725| 类型 | 说明 | 726| -------- | -------- | 727| [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 | 728 729**示例:** 730 731```js 732let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 733let property = pasteData.getProperty(); 734``` 735 736### setProperty<sup>9+</sup> 737 738setProperty(property: PasteDataProperty): void 739 740设置剪贴板内容的属性描述对象,当前仅支持设置shareOption属性。 741 742**系统能力:** SystemCapability.MiscServices.Pasteboard 743 744**参数:** 745 746| 参数名 | 类型 | 必填 | 说明 | 747| -------- | -------- | -------- | -------- | 748| property | [PasteDataProperty](#pastedataproperty7) | 是 | 属性描述对象。 | 749 750**示例:** 751 752```js 753let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'application/xml'); 754let prop = pasteData.getProperty(); 755prop.shareOption = pasteboard.ShareOption.INAPP; 756pasteData.setProperty(prop); 757``` 758 759### getRecord<sup>9+</sup> 760 761getRecord(index: number): PasteDataRecord 762 763获取剪贴板内容中指定下标的条目。 764 765**系统能力:** SystemCapability.MiscServices.Pasteboard 766 767**参数:** 768 769| 参数名 | 类型 | 必填 | 说明 | 770| -------- | -------- | -------- | -------- | 771| index | number | 是 | 指定条目的下标。 | 772 773**返回值:** 774 775| 类型 | 说明 | 776| -------- | -------- | 777| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 | 778 779**错误码:** 780 781以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 782 783| 错误码ID | 错误信息 | 784| -------- | -------- | 785| 12900001 | The index is out of the record. | 786 787**示例:** 788 789```js 790let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 791let record = pasteData.getRecord(0); 792``` 793 794### getRecordCount<sup>7+</sup> 795 796getRecordCount(): number 797 798获取剪贴板内容中条目的个数。 799 800**系统能力:** SystemCapability.MiscServices.Pasteboard 801 802**返回值:** 803 804| 类型 | 说明 | 805| -------- | -------- | 806| number | 条目的个数。 | 807 808**示例:** 809 810```js 811let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 812let count = pasteData.getRecordCount(); 813``` 814 815### getTag<sup>7+</sup> 816 817getTag(): string 818 819获取剪贴板内容中用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。 820 821**系统能力:** SystemCapability.MiscServices.Pasteboard 822 823**返回值:** 824 825| 类型 | 说明 | 826| -------- | -------- | 827| string | 返回用户自定义的标签内容,如果没有设置用户自定义的标签内容,将返回空。 | 828 829**示例:** 830 831```js 832let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 833let tag = pasteData.getTag(); 834``` 835 836### hasType<sup>9+</sup> 837 838hasType(mimeType: string): boolean 839 840检查剪贴板内容中是否有指定的MIME数据类型。 841 842**系统能力:** SystemCapability.MiscServices.Pasteboard 843 844**参数:** 845 846| 参数名 | 类型 | 必填 | 说明 | 847| -------- | -------- | -------- | -------- | 848| mimeType | string | 是 | 待查询的数据类型。 | 849 850**返回值:** 851 852| 类型 | 说明 | 853| -------- | -------- | 854| boolean | 有指定的数据类型返回true,否则返回false。 | 855 856**示例:** 857 858```js 859let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 860let hasType = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN); 861``` 862 863### removeRecord<sup>9+</sup> 864 865removeRecord(index: number): void 866 867移除剪贴板内容中指定下标的条目。 868 869**系统能力:** SystemCapability.MiscServices.Pasteboard 870 871**参数:** 872 873| 参数名 | 类型 | 必填 | 说明 | 874| -------- | -------- | -------- | -------- | 875| index | number | 是 | 指定的下标。 | 876 877**错误码:** 878 879以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 880 881| 错误码ID | 错误信息 | 882| -------- | -------- | 883| 12900001 | The index is out of the record. | 884 885**示例:** 886 887```js 888let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 889pasteData.removeRecord(0); 890``` 891 892### replaceRecord<sup>9+</sup> 893 894replaceRecord(index: number, record: PasteDataRecord): void 895 896替换剪贴板内容中指定下标的条目。 897 898**系统能力:** SystemCapability.MiscServices.Pasteboard 899 900**参数:** 901 902| 参数名 | 类型 | 必填 | 说明 | 903| -------- | -------- | -------- | -------- | 904| index | number | 是 | 指定的下标。 | 905| record | [PasteDataRecord](#pastedatarecord7) | 是 | 新条目的内容。 | 906 907**错误码:** 908 909以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 910 911| 错误码ID | 错误信息 | 912| -------- | -------- | 913| 12900001 | The index is out of the record. | 914 915**示例:** 916 917```js 918let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello'); 919let record = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt'); 920pasteData.replaceRecord(0, record); 921``` 922### addHtmlRecord<sup>(deprecated)</sup> 923 924addHtmlRecord(htmlText: string): void 925 926向当前剪贴板内容中添加一条HTML内容条目,并将MIMETYPE_TEXT_HTML添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 927 928剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。 929> **说明:** 930> 931> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 932 933**系统能力:** SystemCapability.MiscServices.Pasteboard 934 935**参数:** 936 937| 参数名 | 类型 | 必填 | 说明 | 938| -------- | -------- | -------- | -------- | 939| htmlText | string | 是 | HTML内容。 | 940 941**示例:** 942 943```js 944let pasteData = pasteboard.createPlainTextData('hello'); 945let 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>"; 946pasteData.addHtmlRecord(html); 947``` 948 949### addWantRecord<sup>(deprecated)</sup> 950 951addWantRecord(want: Want): void 952 953向当前剪贴板内容中添加一条Want条目,并将MIMETYPE_TEXT_WANT添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 954 955剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。 956> **说明:** 957> 958> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 959 960**系统能力:** SystemCapability.MiscServices.Pasteboard 961 962**参数:** 963 964| 参数名 | 类型 | 必填 | 说明 | 965| -------- | -------- | -------- | -------- | 966| want | [Want](js-apis-app-ability-want.md) | 是 | Want对象内容。 | 967 968**示例:** 969 970```js 971let pasteData = pasteboard.createPlainTextData('hello'); 972let object = { 973 bundleName: "com.example.aafwk.test", 974 abilityName: "com.example.aafwk.test.TwoAbility" 975}; 976pasteData.addWantRecord(object); 977``` 978 979### addTextRecord<sup>(deprecated)</sup> 980 981addTextRecord(text: string): void 982 983向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 984 985剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。 986> **说明:** 987> 988> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 989 990**系统能力:** SystemCapability.MiscServices.Pasteboard 991 992**参数:** 993 994| 参数名 | 类型 | 必填 | 说明 | 995| -------- | -------- | -------- | -------- | 996| text | string | 是 | 纯文本内容。 | 997 998**示例:** 999 1000```js 1001let pasteData = pasteboard.createPlainTextData('hello'); 1002pasteData.addTextRecord('good'); 1003``` 1004 1005### addUriRecord<sup>(deprecated)</sup> 1006 1007addUriRecord(uri: string): void 1008 1009向当前剪贴板内容中添加一条URI条目,并将MIMETYPE_TEXT_URI添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 1010 1011剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。 1012> **说明:** 1013> 1014> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。 1015 1016**系统能力:** SystemCapability.MiscServices.Pasteboard 1017 1018**参数:** 1019 1020| 参数名 | 类型 | 必填 | 说明 | 1021| -------- | -------- | -------- | -------- | 1022| uri | string | 是 | URI内容。 | 1023 1024**示例:** 1025 1026```js 1027let pasteData = pasteboard.createPlainTextData('hello'); 1028pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt'); 1029``` 1030### getRecordAt<sup>(deprecated)</sup> 1031 1032getRecordAt(index: number): PasteDataRecord 1033 1034获取剪贴板内容中指定下标的条目。 1035> **说明:** 1036> 1037> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[getRecord](#getrecord9)替代。 1038 1039**系统能力:** SystemCapability.MiscServices.Pasteboard 1040 1041**参数:** 1042 1043| 参数名 | 类型 | 必填 | 说明 | 1044| -------- | -------- | -------- | -------- | 1045| index | number | 是 | 指定条目的下标。 | 1046 1047**返回值:** 1048 1049| 类型 | 说明 | 1050| -------- | -------- | 1051| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 | 1052 1053**示例:** 1054 1055```js 1056let pasteData = pasteboard.createPlainTextData('hello'); 1057let record = pasteData.getRecordAt(0); 1058``` 1059 1060### hasMimeType<sup>(deprecated)</sup> 1061 1062hasMimeType(mimeType: string): boolean 1063 1064检查剪贴板内容中是否有指定的数据类型。 1065> **说明:** 1066> 1067> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasType](#hastype9)替代。 1068 1069**系统能力:** SystemCapability.MiscServices.Pasteboard 1070 1071**参数:** 1072 1073| 参数名 | 类型 | 必填 | 说明 | 1074| -------- | -------- | -------- | -------- | 1075| mimeType | string | 是 | 待查询的数据类型。 | 1076 1077**返回值:** 1078 1079| 类型 | 说明 | 1080| -------- | -------- | 1081| boolean | 有指定的数据类型返回true,否则返回false。 | 1082 1083**示例:** 1084 1085```js 1086let pasteData = pasteboard.createPlainTextData('hello'); 1087let hasType = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN); 1088``` 1089### removeRecordAt<sup>(deprecated)</sup> 1090 1091removeRecordAt(index: number): boolean 1092 1093移除剪贴板内容中指定下标的条目。 1094> **说明:** 1095> 1096> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[removeRecord](#removerecord9)替代。 1097 1098**系统能力:** SystemCapability.MiscServices.Pasteboard 1099 1100**参数:** 1101 1102| 参数名 | 类型 | 必填 | 说明 | 1103| -------- | -------- | -------- | -------- | 1104| index | number | 是 | 指定的下标。 | 1105 1106**返回值:** 1107 1108| 类型 | 说明 | 1109| -------- | -------- | 1110| boolean | 成功移除返回true,失败返回false。 | 1111 1112**示例:** 1113 1114```js 1115let pasteData = pasteboard.createPlainTextData('hello'); 1116let isRemove = pasteData.removeRecordAt(0); 1117``` 1118### replaceRecordAt<sup>(deprecated)</sup> 1119 1120replaceRecordAt(index: number, record: PasteDataRecord): boolean 1121 1122替换剪贴板内容中指定下标的条目。 1123> **说明:** 1124> 1125> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[replaceRecord](#replacerecord9)替代。 1126 1127**系统能力:** SystemCapability.MiscServices.Pasteboard 1128 1129**参数:** 1130 1131| 参数名 | 类型 | 必填 | 说明 | 1132| -------- | -------- | -------- | -------- | 1133| index | number | 是 | 指定的下标。 | 1134| record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 | 1135 1136**返回值:** 1137 1138| 类型 | 说明 | 1139| -------- | -------- | 1140| boolean | 成功替换返回true,失败返回false。 | 1141 1142**示例:** 1143 1144```js 1145let pasteData = pasteboard.createPlainTextData('hello'); 1146let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt'); 1147let isReplace = pasteData.replaceRecordAt(0, record); 1148``` 1149 1150## SystemPasteboard 1151 1152系统剪贴板对象。 1153 1154在调用SystemPasteboard的接口前,需要先通过[getSystemPasteboard](#pasteboardgetsystempasteboard)获取系统剪贴板。 1155 1156```js 1157let systemPasteboard = pasteboard.getSystemPasteboard(); 1158``` 1159 1160### on('update')<sup>7+</sup> 1161 1162on(type: 'update', callback: () =>void ): void 1163 1164订阅系统剪贴板内容变化事件,当系统剪贴板中内容变化时触发用户程序的回调。 1165 1166**系统能力:** SystemCapability.MiscServices.Pasteboard 1167 1168**参数:** 1169 1170| 参数名 | 类型 | 必填 | 说明 | 1171| -------- | -------- | -------- | -------- | 1172| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 | 1173| callback | function | 是 | 剪贴板中内容变化时触发的用户程序的回调。 | 1174 1175**示例:** 1176 1177```js 1178let systemPasteboard = pasteboard.getSystemPasteboard(); 1179let listener = () => { 1180 console.info('The system pasteboard has changed.'); 1181}; 1182systemPasteboard.on('update', listener); 1183``` 1184 1185### off('update')<sup>7+</sup> 1186 1187off(type: 'update', callback?: () =>void ): void 1188 1189取消订阅系统剪贴板内容变化事件。 1190 1191**系统能力:** SystemCapability.MiscServices.Pasteboard 1192 1193**参数:** 1194 1195| 参数名 | 类型 | 必填 | 说明 | 1196| -------- | -------- | -------- |---------------------------------------------------------| 1197| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 | 1198| callback | function | 否 | 剪贴板中内容变化时触发的用户程序的回调。如果此参数未填,表明清除本应用的所有监听回调,否则表示清除指定监听回调。| 1199 1200**示例:** 1201 1202```js 1203let systemPasteboard = pasteboard.getSystemPasteboard(); 1204let listener = () => { 1205 console.info('The system pasteboard has changed.'); 1206}; 1207systemPasteboard.off('update', listener); 1208``` 1209 1210### clearData<sup>9+</sup> 1211 1212clearData(callback: AsyncCallback<void>): void 1213 1214清空系统剪贴板内容,使用callback异步回调。 1215 1216**系统能力:** SystemCapability.MiscServices.Pasteboard 1217 1218**参数:** 1219 1220| 参数名 | 类型 | 必填 | 说明 | 1221| -------- | -------- | -------- | -------- | 1222| callback | AsyncCallback<void> | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 | 1223 1224**示例:** 1225 1226```js 1227let systemPasteboard = pasteboard.getSystemPasteboard(); 1228systemPasteboard.clearData((err, data) => { 1229 if (err) { 1230 console.error(`Failed to clear the pasteboard. Cause: ${err.message}`); 1231 return; 1232 } 1233 console.info('Succeeded in clearing the pasteboard.'); 1234}); 1235``` 1236 1237### clearData<sup>9+</sup> 1238 1239clearData(): Promise<void> 1240 1241清空系统剪贴板内容,使用Promise异步回调。 1242 1243**系统能力:** SystemCapability.MiscServices.Pasteboard 1244 1245**返回值:** 1246 1247| 类型 | 说明 | 1248| -------- | -------- | 1249| Promise<void> | 无返回结果的Promise对象。 | 1250 1251**示例:** 1252 1253```js 1254let systemPasteboard = pasteboard.getSystemPasteboard(); 1255systemPasteboard.clearData().then((data) => { 1256 console.info('Succeeded in clearing the pasteboard.'); 1257}).catch((err) => { 1258 console.error(`Failed to clear the pasteboard. Cause: ${err.message}`); 1259}); 1260``` 1261 1262### setData<sup>9+</sup> 1263 1264setData(data: PasteData, callback: AsyncCallback<void>): void 1265 1266将数据写入系统剪贴板,使用callback异步回调。 1267 1268**系统能力:** SystemCapability.MiscServices.Pasteboard 1269 1270**参数:** 1271 1272| 参数名 | 类型 | 必填 | 说明 | 1273| -------- | -------- | -------- | -------- | 1274| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 1275| callback | AsyncCallback<void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 | 1276 1277**错误码:** 1278 1279以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 1280 1281| 错误码ID | 错误信息 | 1282| -------- | -------- | 1283| 12900003 | Another copy or paste is in progress. | 1284| 12900004 | Replication is prohibited. | 1285 1286**示例:** 1287 1288```js 1289let pasteData = pasteboard.createPlainTextData('content'); 1290let systemPasteboard = pasteboard.getSystemPasteboard(); 1291systemPasteboard.setData(pasteData, (err, data) => { 1292 if (err) { 1293 console.error('Failed to set PasteData. Cause: ' + err.message); 1294 return; 1295 } 1296 console.info('Succeeded in setting PasteData.'); 1297}); 1298``` 1299 1300### setData<sup>9+</sup> 1301 1302setData(data: PasteData): Promise<void> 1303 1304将数据写入系统剪贴板,使用Promise异步回调。 1305 1306**系统能力:** SystemCapability.MiscServices.Pasteboard 1307 1308**参数:** 1309 1310| 参数名 | 类型 | 必填 | 说明 | 1311| -------- | -------- | -------- | -------- | 1312| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 1313 1314**返回值:** 1315 1316| 类型 | 说明 | 1317| -------- | -------- | 1318| Promise<void> | 无返回结果的Promise对象。 | 1319 1320**错误码:** 1321 1322以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 1323 1324| 错误码ID | 错误信息 | 1325| -------- | -------- | 1326| 12900003 | Another copy or paste is in progress. | 1327| 12900004 | Replication is prohibited. | 1328 1329**示例:** 1330 1331```js 1332let pasteData = pasteboard.createPlainTextData('content'); 1333let systemPasteboard = pasteboard.getSystemPasteboard(); 1334systemPasteboard.setData(pasteData).then((data) => { 1335 console.info('Succeeded in setting PasteData.'); 1336}).catch((err) => { 1337 console.error('Failed to set PasteData. Cause: ' + err.message); 1338}); 1339``` 1340 1341### getData<sup>9+</sup> 1342 1343getData( callback: AsyncCallback<PasteData>): void 1344 1345读取系统剪贴板内容,使用callback异步回调。 1346 1347**系统能力:** SystemCapability.MiscServices.Pasteboard 1348 1349**参数:** 1350 1351| 参数名 | 类型 | 必填 | 说明 | 1352| -------- | -------- | -------- | -------- | 1353| callback | AsyncCallback<[PasteData](#pastedata)> | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 | 1354 1355**错误码:** 1356 1357以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 1358 1359| 错误码ID | 错误信息 | 1360| -------- | -------- | 1361| 12900003 | Another copy or paste is in progress. | 1362 1363**示例:** 1364 1365```js 1366let systemPasteboard = pasteboard.getSystemPasteboard(); 1367systemPasteboard.getData((err, pasteData) => { 1368 if (err) { 1369 console.error('Failed to get PasteData. Cause: ' + err.message); 1370 return; 1371 } 1372 let text = pasteData.getPrimaryText(); 1373}); 1374``` 1375 1376### getData<sup>9+</sup> 1377 1378getData(): Promise<PasteData> 1379 1380读取系统剪贴板内容,使用Promise异步回调。 1381 1382**系统能力:** SystemCapability.MiscServices.Pasteboard 1383 1384**返回值:** 1385 1386| 类型 | 说明 | 1387| -------- | -------- | 1388| Promise<[PasteData](#pastedata)> | Promise对象,返回系统剪贴板数据。 | 1389 1390**错误码:** 1391 1392以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。 1393 1394| 错误码ID | 错误信息 | 1395| -------- | -------- | 1396| 12900003 | Another copy or paste is in progress. | 1397 1398**示例:** 1399 1400```js 1401let systemPasteboard = pasteboard.getSystemPasteboard(); 1402systemPasteboard.getData().then((pasteData) => { 1403 let text = pasteData.getPrimaryText(); 1404}).catch((err) => { 1405 console.error('Failed to get PasteData. Cause: ' + err.message); 1406}) 1407``` 1408 1409### hasData<sup>9+</sup> 1410 1411hasData(callback: AsyncCallback<boolean>): void 1412 1413判断系统剪贴板中是否有内容,使用callback异步回调。 1414 1415**系统能力:** SystemCapability.MiscServices.Pasteboard 1416 1417**参数:** 1418 1419| 参数名 | 类型 | 必填 | 说明 | 1420| -------- | -------- | -------- | -------- | 1421| callback | AsyncCallback<boolean> | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1422 1423**示例:** 1424 1425```js 1426let systemPasteboard = pasteboard.getSystemPasteboard(); 1427systemPasteboard.hasData((err, data) => { 1428 if (err) { 1429 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 1430 return; 1431 } 1432 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 1433}); 1434``` 1435 1436### hasData<sup>9+</sup> 1437 1438hasData(): Promise<boolean> 1439 1440判断系统剪贴板中是否有内容,使用Promise异步回调。 1441 1442**系统能力:** SystemCapability.MiscServices.Pasteboard 1443 1444**返回值:** 1445 1446| 类型 | 说明 | 1447| -------- | -------- | 1448| Promise<boolean> | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1449 1450**示例:** 1451 1452```js 1453let systemPasteboard = pasteboard.getSystemPasteboard(); 1454systemPasteboard.hasData().then((data) => { 1455 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 1456}).catch((err) => { 1457 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 1458}); 1459``` 1460 1461### clear<sup>(deprecated)</sup> 1462 1463clear(callback: AsyncCallback<void>): void 1464 1465清空系统剪贴板内容,使用callback异步回调。 1466> **说明:** 1467> 1468> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9)替代。 1469 1470**系统能力:** SystemCapability.MiscServices.Pasteboard 1471 1472**参数:** 1473 1474| 参数名 | 类型 | 必填 | 说明 | 1475| -------- | -------- | -------- | -------- | 1476| callback | AsyncCallback<void> | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 | 1477 1478**示例:** 1479 1480```js 1481systemPasteboard.clear((err, data) => { 1482 if (err) { 1483 console.error(`Failed to clear the PasteData. Cause: ${err.message}`); 1484 return; 1485 } 1486 console.info('Succeeded in clearing the PasteData.'); 1487}); 1488``` 1489 1490### clear<sup>(deprecated)</sup> 1491 1492clear(): Promise<void> 1493 1494清空系统剪贴板内容,使用Promise异步回调。 1495> **说明:** 1496> 1497> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9-1)替代。 1498 1499**系统能力:** SystemCapability.MiscServices.Pasteboard 1500 1501**返回值:** 1502 1503| 类型 | 说明 | 1504| -------- | -------- | 1505| Promise<void> | 无返回结果的Promise对象。 | 1506 1507**示例:** 1508 1509```js 1510systemPasteboard.clear().then((data) => { 1511 console.info('Succeeded in clearing the PasteData.'); 1512}).catch((err) => { 1513 console.error(`Failed to clear the PasteData. Cause: ${err.message}`); 1514}); 1515``` 1516 1517### getPasteData<sup>(deprecated)</sup> 1518 1519getPasteData( callback: AsyncCallback<PasteData>): void 1520 1521读取系统剪贴板内容,使用callback异步回调。 1522> **说明:** 1523> 1524> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9)替代。 1525 1526**系统能力:** SystemCapability.MiscServices.Pasteboard 1527 1528**参数:** 1529 1530| 参数名 | 类型 | 必填 | 说明 | 1531| -------- | -------- | -------- | -------- | 1532| callback | AsyncCallback<[PasteData](#pastedata)> | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 | 1533 1534**示例:** 1535 1536```js 1537let systemPasteboard = pasteboard.getSystemPasteboard(); 1538systemPasteboard.getPasteData((err, pasteData) => { 1539 if (err) { 1540 console.error('Failed to get PasteData. Cause: ' + err.message); 1541 return; 1542 } 1543 let text = pasteData.getPrimaryText(); 1544}); 1545``` 1546 1547### getPasteData<sup>(deprecated)</sup> 1548 1549getPasteData(): Promise<PasteData> 1550 1551读取系统剪贴板内容,使用Promise异步回调。 1552> **说明:** 1553> 1554> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9-1)替代。 1555 1556**系统能力:** SystemCapability.MiscServices.Pasteboard 1557 1558**返回值:** 1559 1560| 类型 | 说明 | 1561| -------- | -------- | 1562| Promise<[PasteData](#pastedata)> | Promise对象,返回系统剪贴板数据。 | 1563 1564**示例:** 1565 1566```js 1567let systemPasteboard = pasteboard.getSystemPasteboard(); 1568systemPasteboard.getPasteData().then((pasteData) => { 1569 let text = pasteData.getPrimaryText(); 1570}).catch((err) => { 1571 console.error('Failed to get PasteData. Cause: ' + err.message); 1572}) 1573``` 1574 1575### hasPasteData<sup>(deprecated)</sup> 1576 1577hasPasteData(callback: AsyncCallback<boolean>): void 1578 1579判断系统剪贴板中是否有内容,使用callback异步回调。 1580> **说明:** 1581> 1582> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9)替代。 1583 1584**系统能力:** SystemCapability.MiscServices.Pasteboard 1585 1586**参数:** 1587 1588| 参数名 | 类型 | 必填 | 说明 | 1589| -------- | -------- | -------- | -------- | 1590| callback | AsyncCallback<boolean> | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1591 1592**示例:** 1593 1594```js 1595systemPasteboard.hasPasteData((err, data) => { 1596 if (err) { 1597 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 1598 return; 1599 } 1600 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 1601}); 1602``` 1603 1604### hasPasteData<sup>(deprecated)</sup> 1605 1606hasPasteData(): Promise<boolean> 1607 1608判断系统剪贴板中是否有内容,使用Promise异步回调。 1609> **说明:** 1610> 1611> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9-1)替代。 1612 1613**系统能力:** SystemCapability.MiscServices.Pasteboard 1614 1615**返回值:** 1616 1617| 类型 | 说明 | 1618| -------- | -------- | 1619| Promise<boolean> | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1620 1621**示例:** 1622 1623```js 1624systemPasteboard.hasPasteData().then((data) => { 1625 console.info(`Succeeded in checking the PasteData. Data: ${data}`); 1626}).catch((err) => { 1627 console.error(`Failed to check the PasteData. Cause: ${err.message}`); 1628}); 1629``` 1630 1631### setPasteData<sup>(deprecated)</sup> 1632 1633setPasteData(data: PasteData, callback: AsyncCallback<void>): void 1634 1635将数据写入系统剪贴板,使用callback异步回调。 1636> **说明:** 1637> 1638> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9)替代。 1639 1640**系统能力:** SystemCapability.MiscServices.Pasteboard 1641 1642**参数:** 1643 1644| 参数名 | 类型 | 必填 | 说明 | 1645| -------- | -------- | -------- | -------- | 1646| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 1647| callback | AsyncCallback<void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 | 1648 1649**示例:** 1650 1651```js 1652let pasteData = pasteboard.createPlainTextData('content'); 1653let systemPasteboard = pasteboard.getSystemPasteboard(); 1654systemPasteboard.setPasteData(pasteData, (err, data) => { 1655 if (err) { 1656 console.error('Failed to set PasteData. Cause: ' + err.message); 1657 return; 1658 } 1659 console.info('Succeeded in setting PasteData.'); 1660}); 1661``` 1662### setPasteData<sup>(deprecated)</sup> 1663 1664setPasteData(data: PasteData): Promise<void> 1665 1666将数据写入系统剪贴板,使用Promise异步回调。 1667> **说明:** 1668> 1669> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9-1)替代。 1670 1671**系统能力:** SystemCapability.MiscServices.Pasteboard 1672 1673**参数:** 1674 1675| 参数名 | 类型 | 必填 | 说明 | 1676| -------- | -------- | -------- | -------- | 1677| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 1678 1679**返回值:** 1680 1681| 类型 | 说明 | 1682| -------- | -------- | 1683| Promise<void> | 无返回结果的Promise对象。 | 1684 1685**示例:** 1686 1687```js 1688let pasteData = pasteboard.createPlainTextData('content'); 1689let systemPasteboard = pasteboard.getSystemPasteboard(); 1690systemPasteboard.setPasteData(pasteData).then((data) => { 1691 console.info('Succeeded in setting PasteData.'); 1692}).catch((err) => { 1693 console.error('Failed to set PasteData. Cause: ' + err.message); 1694}); 1695```