• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;string, ValueType&gt;): PasteData
95
96构建一个包含多个类型数据的剪贴板内容对象。
97
98**系统能力:** SystemCapability.MiscServices.Pasteboard
99
100**参数:**
101
102| 参数名 | 类型                                             | 必填 | 说明                                                                                                                                                                                                                                                                                          |
103| -------- |------------------------------------------------| -------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
104| data | Record&lt;string, [ValueType](#valuetype9)&gt; | 是 | 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&lt;string&gt; | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。                                                                                                                                                                                                                   |
478| tag<sup>7+</sup> | string | 是 | 是 | 用户自定义标签。                                                                                                                                                                                                                                 |
479| timestamp<sup>7+</sup> | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。                                                                                                                                                                                                                      |
480| localOnly<sup>7+</sup> | boolean | 是 | 是 | 配置剪贴板内容是否为“仅在本地”,默认值为false。其值会被shareOption属性覆盖,推荐使用shareOption属性。ShareOption.INAPPShareOption.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:&nbsp;string]:&nbsp;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&lt;string&gt;): Array&lt;string&gt;
687
688根据传入的MIME类型,返回传入的MIME类型和剪贴板中数据的MIME类型的交集。
689
690**系统能力:** SystemCapability.MiscServices.Pasteboard
691
692**参数:**
693
694| 参数名   | 类型 | 必填 | 说明             |
695|-------| -------- | -------- |----------------|
696| types | Array&lt;string&gt; | 是 | MIME类型列表。 |
697
698**返回值:**
699
700| 类型 | 说明                                   |
701| -------- |--------------------------------------|
702| Array&lt;string&gt; | 传入的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&lt;ValueType&gt;
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&lt;[ValueType](#valuetype9)&gt; | 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&lt;string&gt;): 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&lt;string&gt; | 是 | 回调函数,当转换成功,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&lt;string&gt;
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&lt;string&gt; | 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&lt;string&gt;
1054
1055获取剪贴板中[PasteDataProperty](#pastedataproperty7)的mimeTypes列表,当剪贴板内容为空时,返回列表为空。
1056
1057**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1058
1059**系统能力:** SystemCapability.MiscServices.Pasteboard
1060
1061**返回值:**
1062
1063| 类型 | 说明 |
1064| -------- | -------- |
1065| Array&lt;string&gt; | 剪贴板内容条目的数据类型,非重复的类型列表。 |
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: () =&gt;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?: () =&gt;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&lt;void&gt;): void
1767
1768清空系统剪贴板内容,使用callback异步回调。
1769
1770**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1771
1772**系统能力:** SystemCapability.MiscServices.Pasteboard
1773
1774**参数:**
1775
1776| 参数名 | 类型 | 必填 | 说明 |
1777| -------- | -------- | -------- | -------- |
1778| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,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&lt;void&gt;
1804
1805清空系统剪贴板内容,使用Promise异步回调。
1806
1807**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1808
1809**系统能力:** SystemCapability.MiscServices.Pasteboard
1810
1811**返回值:**
1812
1813| 类型 | 说明 |
1814| -------- | -------- |
1815| Promise&lt;void&gt; | 无返回结果的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&lt;void&gt;): 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&lt;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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;PasteData&gt;): 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&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数。当读取成功,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&lt;PasteData&gt;
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&lt;[PasteData](#pastedata)&gt; | 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&lt;boolean&gt;): void
2003
2004判断系统剪贴板中是否有内容,使用callback异步回调。
2005
2006**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2007
2008**系统能力:** SystemCapability.MiscServices.Pasteboard
2009
2010**参数:**
2011
2012| 参数名 | 类型 | 必填 | 说明 |
2013| -------- | -------- | -------- | -------- |
2014| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回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&lt;boolean&gt;
2042
2043判断系统剪贴板中是否有内容,使用Promise异步回调。
2044
2045**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2046
2047**系统能力:** SystemCapability.MiscServices.Pasteboard
2048
2049**返回值:**
2050
2051| 类型 | 说明 |
2052| -------- | -------- |
2053| Promise&lt;boolean&gt; | 返回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&lt;void&gt;): 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&lt;void&gt; | 是 | 回调函数。当成功清空时,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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;PasteData&gt;): 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&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数。当读取成功,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&lt;PasteData&gt;
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&lt;[PasteData](#pastedata)&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt; | 是 | 返回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&lt;boolean&gt;
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&lt;boolean&gt; | 返回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&lt;void&gt;): 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&lt;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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;unifiedDataChannel.UnifiedData&gt;
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&lt;[unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata)&gt; | 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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;Pattern&gt;): Promise&lt;Array&lt;Pattern&gt;&gt;
2891
2892检测**本地**剪贴板中存在的模式,使用Promise异步回调。
2893
2894**系统能力:** SystemCapability.MiscServices.Pasteboard
2895
2896**参数:**
2897
2898| 参数名 | 类型 | 必填 | 说明 |
2899| -------- | -------- | -------- | -------- |
2900| patterns | [Array&lt;Pattern&gt;](#pattern13) | 是 | 	需要在剪贴板中检测的模式。 |
2901
2902**返回值:**
2903
2904| 类型 | 说明 |
2905| -------- | -------- |
2906| Promise&lt;Array&lt;Pattern&gt;&gt; | 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&lt;Array&lt;string&gt;&gt;
2942
2943读取剪贴板中存在的MIME类型,使用Promise异步回调。
2944
2945**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
2946
2947**系统能力:** SystemCapability.MiscServices.Pasteboard
2948
2949**返回值:**
2950
2951| 类型 | 说明 |
2952| -------- | -------- |
2953| Promise&lt;Array&lt;string&gt;&gt; | 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&lt;PasteData&gt;
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&lt;[PasteData](#pastedata)&gt; | 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