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