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