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