1# 剪贴板 2 3本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。系统剪贴板支持对文本、HTML、URI、Want等内容的操作。 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 | 是 | 否 | 单个PasteData中所能包含的最大条目数。 | 22| MIMETYPE_TEXT_HTML<sup>7+</sup> | string | 是 | 否 | HTML内容的MIME类型定义。 | 23| MIMETYPE_TEXT_WANT<sup>7+</sup> | string | 是 | 否 | Want内容的MIME类型定义。 | 24| MIMETYPE_TEXT_PLAIN<sup>7+</sup> | string | 是 | 否 | 纯文本内容的MIME类型定义。 | 25| MIMETYPE_TEXT_URI<sup>7+</sup> | string | 是 | 否 | URI内容的MIME类型定义。 | 26 27 28## pasteboard.createPlainTextData 29 30createPlainTextData(text:string): PasteData 31 32构建一个纯文本剪贴板内容对象。 33 34**系统能力:** SystemCapability.MiscServices.Pasteboard 35 36**参数:** 37 38| 参数名 | 类型 | 必填 | 说明 | 39| ------ | ------ | ---- | ------------ | 40| text | string | 是 | 纯文本内容。 | 41 42**返回值:** 43 44| 类型 | 说明 | 45| ----------------------- | ---------------- | 46| [PasteData](#pastedata) | 剪贴板内容对象。 | 47 48**示例:** 49 50```js 51var pasteData = pasteboard.createPlainTextData("content"); 52``` 53 54 55## pasteboard.createHtmlData<sup>7+</sup> 56 57createHtmlData(htmlText:string): PasteData 58 59构建一个HTML剪贴板内容对象。 60 61**系统能力:** SystemCapability.MiscServices.Pasteboard 62 63**参数:** 64 65| 参数名 | 类型 | 必填 | 说明 | 66| -------- | ------ | ---- | ---------- | 67| htmlText | string | 是 | HTML内容。 | 68 69**返回值:** 70 71| 类型 | 说明 | 72| ----------------------- | ---------------- | 73| [PasteData](#pastedata) | 剪贴板内容对象。 | 74 75**示例:** 76 77```js 78var 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>"; 79var pasteData = pasteboard.createHtmlData(html); 80``` 81 82 83## pasteboard.createWantData<sup>7+</sup> 84 85createWantData(want:Want): PasteData 86 87构建一个Want剪贴板内容对象。 88 89**系统能力:** SystemCapability.MiscServices.Pasteboard 90 91**参数:** 92 93| 参数名 | 类型 | 必填 | 说明 | 94| ------ | ----------------------------------- | ---- | ---------- | 95| want | [Want](js-apis-featureAbility.md#want) | 是 | Want内容。 | 96 97**返回值:** 98 99| 类型 | 说明 | 100| ----------------------- | ---------------- | 101| [PasteData](#pastedata) | 剪贴板内容对象。 | 102 103**示例:** 104 105```js 106var object = { 107 bundleName: "com.example.aafwk.test", 108 abilityName: "com.example.aafwk.test.TwoAbility" 109}; 110var pasteData = pasteboard.createWantData(object); 111``` 112 113 114## pasteboard.createUriData<sup>7+</sup> 115 116createUriData(uri:string): PasteData 117 118构建一个URI剪贴板内容对象。 119 120**系统能力:** SystemCapability.MiscServices.Pasteboard 121 122**参数:** 123 124| 参数名 | 类型 | 必填 | 说明 | 125| ------ | ------ | ---- | --------- | 126| uri | string | 是 | URI内容。 | 127 128**返回值:** 129 130| 类型 | 说明 | 131| ----------------------- | ---------------- | 132| [PasteData](#pastedata) | 剪贴板内容对象。 | 133 134**示例:** 135 136```js 137var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1/user.txt"); 138``` 139 140## pasteboard.createPlainTextRecord<sup>7+</sup> 141 142createPlainTextRecord(text:string): PasteDataRecord 143 144创建一条纯文本内容条目。 145 146**系统能力:** SystemCapability.MiscServices.Pasteboard 147 148**参数:** 149 150| 参数名 | 类型 | 必填 | 说明 | 151| ------ | ------ | ---- | ------------ | 152| text | string | 是 | 纯文本内容。 | 153 154**返回值:** 155 156| 类型 | 说明 | 157| ------------------------------------ | -------------------------- | 158| [PasteDataRecord](#pastedatarecord7) | 一条新建的纯文本内容条目。 | 159 160**示例:** 161 162```js 163var record = pasteboard.createPlainTextRecord("hello"); 164``` 165 166 167## pasteboard.createHtmlTextRecord<sup>7+</sup> 168 169createHtmlTextRecord(htmlText:string): PasteDataRecord 170 171创建一条HTML内容的条目。 172 173**系统能力:** SystemCapability.MiscServices.Pasteboard 174 175**参数:** 176 177| 参数名 | 类型 | 必填 | 说明 | 178| -------- | ------ | ---- | ---------- | 179| htmlText | string | 是 | HTML内容。 | 180 181**返回值:** 182 183| 类型 | 说明 | 184| ------------------------------------ | ------------------------ | 185| [PasteDataRecord](#pastedatarecord7) | 一条新建的HTML内容条目。 | 186 187**示例:** 188 189```js 190var 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>"; 191var record = pasteboard.createHtmlTextRecord(html); 192``` 193 194 195## pasteboard.createWantRecord<sup>7+</sup> 196 197createWantRecord(want:Want): PasteDataRecord 198 199创建一条Want内容条目。 200 201**系统能力:** SystemCapability.MiscServices.Pasteboard 202 203**参数:** 204 205| 参数名 | 类型 | 必填 | 说明 | 206| ------ | ----------------------------------- | ---- | ---------- | 207| want | [Want](js-apis-featureAbility.md#want) | 是 | Want内容。 | 208 209**返回值:** 210 211| 类型 | 说明 | 212| ------------------------------------ | ------------------------ | 213| [PasteDataRecord](#pastedatarecord7) | 一条新建的Want内容条目。 | 214 215**示例:** 216 217```js 218var object = { 219 bundleName: "com.example.aafwk.test", 220 abilityName: "com.example.aafwk.test.TwoAbility" 221}; 222var record = pasteboard.createWantRecord(object); 223``` 224 225## pasteboard.createUriRecord<sup>7+</sup> 226 227createUriRecord(uri:string): PasteDataRecord 228 229创建一条URI内容的条目。 230 231**系统能力:** SystemCapability.MiscServices.Pasteboard 232 233**参数:** 234 235| 参数名 | 类型 | 必填 | 说明 | 236| ------ | ------ | ---- | --------- | 237| uri | string | 是 | URI内容。 | 238 239**返回值:** 240 241| 类型 | 说明 | 242| ------------------------------------ | ----------------------- | 243| [PasteDataRecord](#pastedatarecord7) | 一条新建的URI内容条目。 | 244 245**示例:** 246 247```js 248var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1/user.txt"); 249``` 250 251## pasteboard.getSystemPasteboard 252 253getSystemPasteboard(): SystemPasteboard 254 255获取系统剪贴板对象。 256 257**系统能力:** SystemCapability.MiscServices.Pasteboard 258 259**返回值:** 260 261| 类型 | 说明 | 262| ------------------------------------- | ---------------- | 263| [SystemPasteboard](#systempasteboard) | 系统剪切板对象。 | 264 265**示例:** 266 267```js 268var systemPasteboard = pasteboard.getSystemPasteboard(); 269``` 270 271 272## PasteDataProperty<sup>7+</sup> 273 274定义了剪贴板中所有内容条目的属性,包含时间戳、数据类型以及一些附加数据等。 275 276**系统能力:** SystemCapability.MiscServices.Pasteboard 277 278| 名称 | 参数类型 | 可读 | 可写 | 说明 | 279| --------- | --------------------- | ---- | ---- | ------------------------------------------------------------ | 280| additions | {[key:string]:object} | 是 | 是 | 设置的其他附加属性数据。 | 281| mimeTypes | Array<string> | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。 | 282| tag | string | 是 | 是 | 用户自定义标签。 | 283| timestamp | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。 | 284| localOnly | boolean | 是 | 是 | 配置剪贴板内容是否为“仅在本地”。默认值为true。<br/>- 配置为true时,表示内容仅在本地,不会在设备之间传递。<br/>- 配置为false时,表示内容将在设备间传递。 | 285 286 287## PasteDataRecord<sup>7+</sup> 288 289对于剪贴板中内容记录的抽象定义,称之为条目。剪贴板内容部分由一个或者多个条目构成,例如一条文本内容、一份HTML、一个URI或者一个Want。 290 291 292### 属性 293 294**系统能力:** SystemCapability.MiscServices.Pasteboard 295 296| 名称 | 参数类型 | 可读 | 可写 | 说明 | 297| ---------------------- | ----------------------------------- | ---- | ---- | ------------ | 298| htmlText<sup>7+</sup> | string | 是 | 否 | HTML内容。 | 299| want<sup>7+</sup> | [Want](js-apis-featureAbility.md#want) | 是 | 否 | Want内容。 | 300| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 | 301| plainText<sup>7+</sup> | string | 是 | 否 | 纯文本内容。 | 302| uri<sup>7+</sup> | string | 是 | 否 | URI内容。 | 303 304 305### convertToText<sup>7+</sup> 306 307convertToText(): Promise<string> 308 309将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。 310 311**系统能力:** SystemCapability.MiscServices.Pasteboard 312 313**返回值:** 314 315| 类型 | 说明 | 316| --------------------- | ------------------------------------- | 317| Promise<string> | Promise对象,返回强制转换的文本内容。 | 318 319**示例:** 320 321```js 322var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1/user.txt"); 323record.convertToText().then((data) => { 324 console.info('Succeeded in converting to text. Data: ' + JSON.stringify(data)); 325}).catch((err) => { 326 console.error('Failed to convert to text. Cause: ' + JSON.stringify(err)); 327}); 328``` 329 330 331### convertToText<sup>7+</sup> 332 333convertToText(callback: AsyncCallback<string>): void 334 335将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。 336 337**系统能力:** SystemCapability.MiscServices.Pasteboard 338 339**参数:** 340 341| 参数名 | 类型 | 必填 | 说明 | 342| -------- | --------------------------- | ---- | ------------------------------------------------------------ | 343| callback | AsyncCallback<string> | 是 | 回调函数,当转换成功,err为undefined,data为强制转换的文本内容;否则返回错误信息。 | 344 345**示例:** 346 347```js 348var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1/user.txt"); 349record.convertToText((err, data) => { 350 if (err) { 351 console.error('Failed to convert to text. Cause: ' + JSON.stringify(err)); 352 return; 353 } 354 console.info('Succeeded in converting to text. Data: ' + JSON.stringify(data)); 355}); 356``` 357 358 359## PasteData 360 361剪贴板内容对象。 362 363在调用PasteData的接口前,需要先获取一个PasteData对象。 364 365**系统能力:** SystemCapability.MiscServices.Pasteboard 366 367 368### getPrimaryText 369 370 371getPrimaryText(): string 372 373 374获取首个条目的纯文本内容。 375 376**系统能力:** SystemCapability.MiscServices.Pasteboard 377 378 379**返回值:** 380 381| 类型 | 说明 | 382| ------ | ------------ | 383| string | 纯文本内容。 | 384 385**示例:** 386 387```js 388var pasteData = pasteboard.createPlainTextData("hello"); 389var plainText = pasteData.getPrimaryText(); 390``` 391 392 393### getPrimaryHtml<sup>7+</sup> 394 395getPrimaryHtml(): string 396 397获取首个条目的HTML内容。 398 399**系统能力:** SystemCapability.MiscServices.Pasteboard 400 401**返回值:** 402 403| 类型 | 说明 | 404| ------ | ---------- | 405| string | HTML内容。 | 406 407**示例:** 408 409```js 410var 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>"; 411var pasteData = pasteboard.createHtmlData(html); 412var htmlText = pasteData.getPrimaryHtml(); 413``` 414 415 416### getPrimaryWant<sup>7+</sup> 417 418getPrimaryWant(): Want 419 420获取首个条目的Want对象内容。 421 422**系统能力:** SystemCapability.MiscServices.Pasteboard 423 424**返回值:** 425 426| 类型 | 说明 | 427| ----------------------------------- | -------------- | 428| [Want](js-apis-featureAbility.md#want) | Want对象内容。 | 429 430**示例:** 431 432```js 433var object = { 434 bundleName: "com.example.aafwk.test", 435 abilityName: "com.example.aafwk.test.TwoAbility" 436}; 437var pasteData = pasteboard.createWantData(object); 438var want = pasteData.getPrimaryWant(); 439``` 440 441 442### getPrimaryUri<sup>7+</sup> 443 444getPrimaryUri(): string 445 446获取首个条目的URI内容。 447 448**系统能力:** SystemCapability.MiscServices.Pasteboard 449 450**返回值:** 451 452| 类型 | 说明 | 453| ------ | --------- | 454| string | URI内容。 | 455 456**示例:** 457 458```js 459var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1/user.txt"); 460var uri = pasteData.getPrimaryUri(); 461``` 462 463 464### addTextRecord<sup>7+</sup> 465 466addTextRecord(text: string): void 467 468向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 469 470剪贴板内容中添加的条目达到数量上限128后,后续的添加操作无效。 471 472**系统能力:** SystemCapability.MiscServices.Pasteboard 473 474**参数:** 475 476| 参数名 | 类型 | 必填 | 说明 | 477| ------ | ------ | ---- | ------------ | 478| text | string | 是 | 纯文本内容。 | 479 480**示例:** 481 482```js 483var pasteData = pasteboard.createPlainTextData("hello"); 484pasteData.addTextRecord("good"); 485``` 486 487 488### addHtmlRecord<sup>7+</sup> 489 490addHtmlRecord(htmlText: string): void 491 492向当前剪贴板内容中添加一条HTML内容条目,并将MIMETYPE_TEXT_HTML添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 493 494剪贴板内容中添加的条目达到数量上限128后,后续的添加操作无效。 495 496**系统能力:** SystemCapability.MiscServices.Pasteboard 497 498**参数:** 499 500| 参数名 | 类型 | 必填 | 说明 | 501| -------- | ------ | ---- | ---------- | 502| htmlText | string | 是 | HTML内容。 | 503 504**示例:** 505 506```js 507var pasteData = pasteboard.createPlainTextData("hello"); 508var 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>"; 509pasteData.addHtmlRecord(html); 510``` 511 512 513### addWantRecord<sup>7+</sup> 514 515addWantRecord(want: Want): void 516 517向当前剪贴板内容中添加一条Want条目,并将MIMETYPE_TEXT_WANT添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 518 519剪贴板内容中添加的条目达到数量上限128后,后续的添加操作无效。 520 521**系统能力:** SystemCapability.MiscServices.Pasteboard 522 523**参数:** 524 525| 参数名 | 类型 | 必填 | 说明 | 526| ------ | ----------------------------------- | ---- | -------------- | 527| want | [Want](js-apis-featureAbility.md#want) | 是 | Want对象内容。 | 528 529**示例:** 530 531```js 532var pasteData = pasteboard.createPlainTextData("hello"); 533var object = { 534 bundleName: "com.example.aafwk.test", 535 abilityName: "com.example.aafwk.test.TwoAbility" 536}; 537pasteData.addWantRecord(object); 538``` 539 540 541### addUriRecord<sup>7+</sup> 542 543addUriRecord(uri: string): void 544 545向当前剪贴板内容中添加一条URI条目,并将MIMETYPE_TEXT_URI添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 546 547剪贴板内容中添加的条目达到数量上限128后,后续的添加操作无效。 548 549**系统能力:** SystemCapability.MiscServices.Pasteboard 550 551**参数:** 552 553| 参数名 | 类型 | 必填 | 说明 | 554| ------ | ------ | ---- | --------- | 555| uri | string | 是 | URI内容。 | 556 557**示例:** 558 559```js 560var pasteData = pasteboard.createPlainTextData("hello"); 561pasteData.addUriRecord("dataability:///com.example.myapplication1/user.txt"); 562``` 563 564 565### addRecord<sup>7+</sup> 566 567addRecord(record: PasteDataRecord): void 568 569向当前剪贴板内容中添加一条条目,同时也会将条目类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。 570 571剪贴板内容中添加的条目达到数量上限128后,后续的添加操作无效。 572 573**系统能力:** SystemCapability.MiscServices.Pasteboard 574 575**参数:** 576 577| 参数名 | 类型 | 必填 | 说明 | 578| ------ | ------------------------------------ | ---- | -------------- | 579| record | [PasteDataRecord](#pastedatarecord7) | 是 | 待添加的条目。 | 580 581**示例:** 582 583```js 584var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1/user.txt"); 585var textRecord = pasteboard.createPlainTextRecord("hello"); 586var 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>"; 587var htmlRecord = pasteboard.createHtmlTextRecord(html); 588pasteData.addRecord(textRecord); 589pasteData.addRecord(htmlRecord); 590``` 591 592### getMimeTypes<sup>7+</sup> 593 594getMimeTypes(): Array<string> 595 596获取剪贴板中[PasteDataProperty](#pastedataproperty7)的mimeTypes列表,当剪贴板内容为空时,返回列表为空。 597 598**系统能力:** SystemCapability.MiscServices.Pasteboard 599 600**返回值:** 601 602| 类型 | 说明 | 603| ------------------- | -------------------------------------------- | 604| Array<string> | 剪贴板内容条目的数据类型,非重复的类型列表。 | 605 606**示例:** 607 608```js 609var pasteData = pasteboard.createPlainTextData("hello"); 610var types = pasteData.getMimeTypes(); 611``` 612 613### getPrimaryMimeType<sup>7+</sup> 614 615getPrimaryMimeType(): string 616 617获取剪贴板内容中首个条目的数据类型。 618 619**系统能力:** SystemCapability.MiscServices.Pasteboard 620 621**返回值:** 622 623| 类型 | 说明 | 624| ------ | -------------------- | 625| string | 首个条目的数据类型。 | 626 627**示例:** 628 629```js 630var pasteData = pasteboard.createPlainTextData("hello"); 631var type = pasteData.getPrimaryMimeType(); 632``` 633 634### getProperty<sup>7+</sup> 635 636getProperty(): PasteDataProperty 637 638获取剪贴板内容的属性描述对象。 639 640**系统能力:** SystemCapability.MiscServices.Pasteboard 641 642**返回值:** 643 644| 类型 | 说明 | 645| ---------------------------------------- | -------------- | 646| [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 | 647 648**示例:** 649 650```js 651var pasteData = pasteboard.createPlainTextData("hello"); 652var property = pasteData.getProperty(); 653``` 654 655### getRecordAt<sup>7+</sup> 656 657getRecordAt(index: number): PasteDataRecord 658 659获取剪贴板内容中指定下标的条目。 660 661**系统能力:** SystemCapability.MiscServices.Pasteboard 662 663**参数:** 664 665| 参数名 | 类型 | 必填 | 说明 | 666| ------ | ------ | ---- | ---------------- | 667| index | number | 是 | 指定条目的下标。 | 668 669**返回值:** 670 671| 类型 | 说明 | 672| ------------------------------------ | ---------------- | 673| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 | 674 675**示例:** 676 677```js 678var pasteData = pasteboard.createPlainTextData("hello"); 679var record = pasteData.getRecordAt(0); 680``` 681 682 683### getRecordCount<sup>7+</sup> 684 685getRecordCount(): number 686 687获取剪贴板内容中条目的个数。 688 689**系统能力:** SystemCapability.MiscServices.Pasteboard 690 691**返回值:** 692 693| 类型 | 说明 | 694| ------ | ------------ | 695| number | 条目的个数。 | 696 697**示例:** 698 699```js 700var pasteData = pasteboard.createPlainTextData("hello"); 701var count = pasteData.getRecordCount(); 702``` 703 704 705### getTag<sup>7+</sup> 706 707getTag(): string 708 709获取剪贴板内容中用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。 710 711**系统能力:** SystemCapability.MiscServices.Pasteboard 712 713**返回值:** 714 715| 类型 | 说明 | 716| ------ | ------------------------------------------------------------ | 717| string | 返回用户自定义的标签内容,如果没有设置用户自定义的标签内容,将返回空。 | 718 719**示例:** 720 721```js 722var pasteData = pasteboard.createPlainTextData("hello"); 723var tag = pasteData.getTag(); 724``` 725 726 727### hasMimeType<sup>7+</sup> 728 729hasMimeType(mimeType: string): boolean 730 731检查剪贴板内容中是否有指定的数据类型。 732 733**系统能力:** SystemCapability.MiscServices.Pasteboard 734 735**参数:** 736 737| 参数名 | 类型 | 必填 | 说明 | 738| -------- | ------ | ---- | ------------------ | 739| mimeType | string | 是 | 待查询的数据类型。 | 740 741**返回值:** 742 743| 类型 | 说明 | 744| ------- | ----------------------------------------- | 745| boolean | 有指定的数据类型返回true,否则返回false。 | 746 747**示例:** 748 749```js 750var pasteData = pasteboard.createPlainTextData("hello"); 751var hasType = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN); 752``` 753 754 755### removeRecordAt<sup>7+</sup> 756 757removeRecordAt(index: number): boolean 758 759移除剪贴板内容中指定下标的条目。 760 761**系统能力:** SystemCapability.MiscServices.Pasteboard 762 763**参数:** 764 765| 参数名 | 类型 | 必填 | 说明 | 766| ------ | ------ | ---- | ------------ | 767| index | number | 是 | 指定的下标。 | 768 769**返回值:** 770 771| 类型 | 说明 | 772| ------- | --------------------------------- | 773| boolean | 成功移除返回true,失败返回false。 | 774 775**示例:** 776 777```js 778var pasteData = pasteboard.createPlainTextData("hello"); 779var isRemove = pasteData.removeRecordAt(0); 780``` 781 782 783### replaceRecordAt<sup>7+</sup> 784 785replaceRecordAt(index: number, record: PasteDataRecord): boolean 786 787替换剪贴板内容中指定下标的条目。 788 789**系统能力:** SystemCapability.MiscServices.Pasteboard 790 791**参数:** 792 793| 参数名 | 类型 | 必填 | 说明 | 794| ------ | ------------------------------------ | ---- | -------------- | 795| index | number | 是 | 指定的下标。 | 796| record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 | 797 798**返回值:** 799 800| 类型 | 说明 | 801| ------- | --------------------------------- | 802| boolean | 成功替换返回true,失败返回false。 | 803 804**示例:** 805 806```js 807var pasteData = pasteboard.createPlainTextData("hello"); 808var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1/user.txt"); 809var isReplace = pasteData.replaceRecordAt(0, record); 810``` 811 812## SystemPasteboard 813 814系统剪贴板对象。 815 816在调用SystemPasteboard的接口前,需要先通过[getSystemPasteboard](#pasteboardgetsystempasteboard)获取系统剪贴板。 817 818```js 819var systemPasteboard = pasteboard.getSystemPasteboard(); 820``` 821 822 823### setPasteData 824 825setPasteData(data:PasteData, callback:AsyncCallback<void>): void 826 827将数据写入系统剪贴板,使用callback异步回调。 828 829**系统能力:** SystemCapability.MiscServices.Pasteboard 830 831**参数:** 832 833| 参数名 | 类型 | 必填 | 说明 | 834| -------- | ----------------------- | ---- | ------------------------------------------------------ | 835| data | [PasteData](#pastedata) | 是 | PasteData对象。 | 836| callback | AsyncCallback<void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 | 837 838**示例:** 839 840```js 841var pasteData = pasteboard.createPlainTextData("content"); 842var systemPasteboard = pasteboard.getSystemPasteboard(); 843systemPasteboard.setPasteData(pasteData, (err, data) => { 844 if (err) { 845 console.error('Failed to set PasteData. Cause: ' + err.message); 846 return; 847 } 848 console.info('Succeeded in setting PasteData.'); 849}); 850``` 851 852 853### setPasteData 854 855setPasteData(data:PasteData): Promise<void> 856 857将数据写入系统剪贴板,使用Promise异步回调。 858 859**系统能力:** SystemCapability.MiscServices.Pasteboard 860 861**参数:** 862 863| 参数名 | 类型 | 说明 | 864| ------ | ----------------------- | --------------- | 865| data | [PasteData](#pastedata) | PasteData对象。 | 866 867**返回值:** 868 869| 类型 | 说明 | 870| ------------------- | ------------------------- | 871| Promise<void> | 无返回结果的Promise对象。 | 872 873**示例:** 874 875```js 876var pasteData = pasteboard.createPlainTextData("content"); 877var systemPasteboard = pasteboard.getSystemPasteboard(); 878systemPasteboard.setPasteData(pasteData).then((data) => { 879 console.info('Succeeded in setting PasteData.'); 880}).catch((err) => { 881 console.error('Failed to set PasteData. Cause: ' + err.message); 882}); 883``` 884 885 886### getPasteData 887 888getPasteData( callback:AsyncCallback<PasteData>): void 889 890读取系统剪贴板内容,使用callback异步回调。 891 892**系统能力:** SystemCapability.MiscServices.Pasteboard 893 894**参数:** 895 896| 参数名 | 类型 | 必填 | 说明 | 897| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 898| callback | AsyncCallback<[PasteData](#pastedata)> | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 | 899 900**示例:** 901 902```js 903var systemPasteboard = pasteboard.getSystemPasteboard(); 904systemPasteboard.getPasteData((err, pasteData) => { 905 if (err) { 906 console.error('Failed to get PasteData. Cause: ' + err.message); 907 return; 908 } 909 var text = pasteData.getPrimaryText(); 910}); 911``` 912 913 914### getPasteData 915 916getPasteData(): Promise<PasteData> 917 918读取系统剪贴板内容,使用Promise异步回调。 919 920**系统能力:** SystemCapability.MiscServices.Pasteboard 921 922**返回值:** 923 924| 类型 | 说明 | 925| -------------------------------------- | --------------------------------- | 926| Promise<[PasteData](#pastedata)> | Promise对象,返回系统剪贴板数据。 | 927 928**示例:** 929 930```js 931var systemPasteboard = pasteboard.getSystemPasteboard(); 932systemPasteboard.getPasteData().then((pasteData) => { 933 var text = pasteData.getPrimaryText(); 934}).catch((err) => { 935 console.error('Failed to get PasteData. Cause: ' + err.message); 936}) 937``` 938 939 940### on('update')<sup>7+</sup> 941 942on(type: 'update', callback: () =>void ): void 943 944订阅系统剪贴板内容变化事件,当系统剪贴板中内容变化时触发用户程序的回调。 945 946**系统能力:** SystemCapability.MiscServices.Pasteboard 947 948**参数:** 949 950| 参数名 | 类型 | 必填 | 说明 | 951| -------- | -------- | ---- | -------------------------------------------- | 952| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 | 953| callback | function | 是 | 剪贴板中内容变化时触发的用户程序的回调。 | 954 955**示例:** 956 957```js 958var systemPasteboard = pasteboard.getSystemPasteboard(); 959var listener = () => { 960 console.info('The system pasteboard has changed.'); 961}; 962systemPasteboard.on('update', listener); 963``` 964 965 966### off('update')<sup>7+</sup> 967 968off(type: 'update', callback?: () =>void ): void 969 970取消订阅系统剪贴板内容变化事件。 971 972**系统能力:** SystemCapability.MiscServices.Pasteboard 973 974**参数:** 975 976| 参数名 | 类型 | 必填 | 说明 | 977| -------- | -------- | ---- | -------------------------------------------- | 978| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 | 979| callback | function | 否 | 剪贴板中内容变化时触发的用户程序的回调。 | 980 981**示例:** 982 983```js 984let listener = () => { 985 console.info('The system pasteboard has changed.'); 986}; 987systemPasteboard.off('update', listener); 988``` 989 990 991### hasPasteData<sup>7+</sup> 992 993hasPasteData(callback: AsyncCallback<boolean>): void 994 995判断系统剪贴板中是否有内容,使用callback异步回调。 996 997**系统能力:** SystemCapability.MiscServices.Pasteboard 998 999**参数:** 1000 1001| 参数名 | 类型 | 必填 | 说明 | 1002| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 1003| callback | AsyncCallback<boolean> | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1004 1005**示例:** 1006 1007```js 1008systemPasteboard.hasPasteData((err, data) => { 1009 if (err) { 1010 console.error('Failed to check the PasteData. Cause: ' + JSON.stringify(err)); 1011 return; 1012 } 1013 console.info('Succeeded in checking the PasteData. Data: ' + JSON.stringify(data)); 1014}); 1015``` 1016 1017 1018### hasPasteData<sup>7+</sup> 1019 1020hasPasteData(): Promise<boolean> 1021 1022判断系统剪贴板中是否有内容,使用Promise异步回调。 1023 1024**系统能力:** SystemCapability.MiscServices.Pasteboard 1025 1026**返回值:** 1027 1028| 类型 | 说明 | 1029| ---------------------- | ------------------------------------------------------------ | 1030| Promise<boolean> | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 | 1031 1032**示例:** 1033 1034```js 1035systemPasteboard.hasPasteData().then((data) => { 1036 console.info('Succeeded in checking the PasteData. Data: ' + JSON.stringify(data)); 1037}).catch((err) => { 1038 console.error('Failed to check the PasteData. Cause: ' + JSON.stringify(err)); 1039}); 1040``` 1041 1042 1043### clear<sup>7+</sup> 1044 1045clear(callback: AsyncCallback<void>): void 1046 1047清空系统剪贴板内容,使用callback异步回调。 1048 1049**系统能力:** SystemCapability.MiscServices.Pasteboard 1050 1051**参数:** 1052 1053| 参数名 | 类型 | 必填 | 说明 | 1054| -------- | ------------------------- | ---- | -------------------------------------------------------- | 1055| callback | AsyncCallback<void> | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 | 1056 1057**示例:** 1058 1059```js 1060systemPasteboard.clear((err, data) => { 1061 if (err) { 1062 console.error('Failed to clear the PasteData. Cause: ' + JSON.stringify(err)); 1063 return; 1064 } 1065 console.info('Succeeded in clearing the PasteData.'); 1066}); 1067``` 1068 1069 1070### clear<sup>7+</sup> 1071 1072clear(): Promise<void> 1073 1074清空系统剪贴板内容,使用Promise异步回调。 1075 1076**系统能力:** SystemCapability.MiscServices.Pasteboard 1077 1078**返回值:** 1079 1080| 类型 | 说明 | 1081| ------------------- | ------------------------- | 1082| Promise<void> | 无返回结果的Promise对象。 | 1083 1084**示例:** 1085 1086```js 1087systemPasteboard.clear().then((data) => { 1088 console.info('Succeeded in clearing the PasteData.'); 1089}).catch((err) => { 1090 console.error('Failed to clear the PasteData. Cause: ' + JSON.stringify(err)); 1091}); 1092```