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## PasteDataRecord<sup>7+</sup>
484
485对于剪贴板中内容记录的抽象定义,称之为条目。剪贴板内容部分由一个或者多个条目构成,例如一条文本内容、一份HTML、一个URI或者一个Want。
486
487### 属性
488
489**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
490
491**系统能力:** SystemCapability.MiscServices.Pasteboard
492
493| 名称 | 类型 | 可读 | 可写 | 说明 |
494| -------- | -------- | -------- | -------- | -------- |
495| htmlText<sup>7+</sup> | string | 是 | 否 | HTML内容。 |
496| want<sup>7+</sup> | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | 否 | Want内容。 |
497| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 |
498| plainText<sup>7+</sup> | string | 是 | 否 | 纯文本内容。 |
499| uri<sup>7+</sup> | string | 是 | 否 | URI内容。 |
500| pixelMap<sup>9+</sup> | [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | 是 | 否 | PixelMap内容。 |
501| data<sup>9+</sup> | {[mimeType:&nbsp;string]:&nbsp;ArrayBuffer} | 是 | 否 | 自定义数据内容。 |
502
503### toPlainText<sup>9+</sup>
504
505toPlainText(): string
506
507将一个PasteData中的内容强制转换为文本内容。
508
509**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
510
511**系统能力:** SystemCapability.MiscServices.Pasteboard
512
513**返回值:**
514
515| 类型 | 说明 |
516| -------- | -------- |
517| string | 纯文本内容。 |
518
519**示例:**
520
521```ts
522let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
523let data: string = record.toPlainText();
524console.info(`Succeeded in converting to text. Data: ${data}`);
525```
526
527### addEntry<sup>14+</sup>
528
529addEntry(type: string, value: ValueType): void
530
531往一个PasteDataRecord中额外添加一种样式的自定义数据。此方式添加的MIME类型都不是Record的默认类型,粘贴时只能使用[getData](#getdata14)接口读取对应数据。
532
533**系统能力:** SystemCapability.MiscServices.Pasteboard
534
535**参数:**
536
537| 参数名   | 类型 | 必填 | 说明                |
538|-------| -------- | -------- |-------------------|
539| type  | string | 是 | 剪贴板数据对应的MIME类型,可以是[常量](#常量)中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值,mimeType长度不能超过1024个字节。  |
540| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。          |
541
542**错误码:**
543
544以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。
545
546| 错误码ID | 错误信息 |
547| -------- | -------- |
548| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
549
550**示例:**
551
552```ts
553let 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>";
554let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
555record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
556record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
557```
558
559### getValidTypes<sup>14+</sup>
560
561getValidTypes(types: Array&lt;string&gt;): Array&lt;string&gt;
562
563根据传入的MIME类型,返回传入的MIME类型和剪贴板中数据的MIME类型的交集。
564
565**系统能力:** SystemCapability.MiscServices.Pasteboard
566
567**参数:**
568
569| 参数名   | 类型 | 必填 | 说明             |
570|-------| -------- | -------- |----------------|
571| types | Array&lt;string&gt; | 是 | MIME类型列表。 |
572
573**返回值:**
574
575| 类型 | 说明                                   |
576| -------- |--------------------------------------|
577| Array&lt;string&gt; | 传入的MIME类型和剪贴板中数据的MIME类型的交集。 |
578
579**错误码:**
580
581以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。
582
583| 错误码ID | 错误信息 |
584| -------- | -------- |
585| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
586
587**示例:**
588
589```ts
590let 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>";
591let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
592record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
593record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
594let types: string[] = record.getValidTypes([
595    pasteboard.MIMETYPE_TEXT_PLAIN,
596    pasteboard.MIMETYPE_TEXT_HTML,
597    pasteboard.MIMETYPE_TEXT_URI,
598    pasteboard.MIMETYPE_TEXT_WANT,
599    pasteboard.MIMETYPE_PIXELMAP
600]);
601```
602
603### getData<sup>14+</sup>
604
605getData(type: string): Promise&lt;ValueType&gt;
606
607从PasteDataRecord中获取指定MIME类型的自定义数据。
608
609**系统能力:** SystemCapability.MiscServices.Pasteboard
610
611**参数:**
612
613| 参数名  | 类型     |必填 | 说明       |
614|------|--------|-------- |----------|
615| type | string |是 | MIME类型。 |
616
617**返回值:**
618
619| 类型                                      | 说明                                                                                                                   |
620|-----------------------------------------|----------------------------------------------------------------------------------------------------------------------|
621| Promise&lt;[ValueType](#valuetype9)&gt; | Promise对象,返回PasteDataRecord中指定MIME类型的自定义数据。<br/>PasteDataRecord中包含多个MIME类型数据时,非PasteDataRecord的默认MIME类型的数据只能通过本接口获取。 |
622
623**错误码:**
624
625以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。
626
627| 错误码ID | 错误信息 |
628| -------- | -------- |
629| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
630
631**示例:**
632
633```ts
634import { BusinessError } from '@kit.BasicServicesKit';
635
636let 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>";
637let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
638record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
639record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
640record.getData(pasteboard.MIMETYPE_TEXT_PLAIN).then((value: pasteboard.ValueType) => {
641    let textPlainContent = value as string;
642    console.info('Success to get text/plain value. value is: ' + textPlainContent);
643}).catch((err: BusinessError) => {
644    console.error('Failed to get text/plain value. Cause: ' + err.message);
645});
646record.getData(pasteboard.MIMETYPE_TEXT_URI).then((value: pasteboard.ValueType) => {
647    let uri = value as string;
648    console.info('Success to get text/uri value. value is: ' + uri);
649}).catch((err: BusinessError) => {
650    console.error('Failed to get text/uri value. Cause: ' + err.message);
651});
652```
653
654### convertToText<sup>(deprecated)</sup>
655
656convertToText(callback: AsyncCallback&lt;string&gt;): void
657
658将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。
659> **说明:**
660>
661> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
662
663**系统能力:** SystemCapability.MiscServices.Pasteboard
664
665**参数:**
666
667| 参数名 | 类型 | 必填 | 说明 |
668| -------- | -------- | -------- | -------- |
669| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,当转换成功,err为undefined,data为强制转换的文本内容;否则返回错误信息。 |
670
671**错误码:**
672
673以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
674
675| 错误码ID | 错误信息 |
676| -------- | -------- |
677| 401      | Possible causes: Incorrect parameters types. |
678
679**示例:**
680
681```ts
682import { BusinessError } from '@kit.BasicServicesKit';
683
684let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
685record.convertToText((err: BusinessError, data: string) => {
686    if (err) {
687        console.error(`Failed to convert to text. Cause: ${err.message}`);
688        return;
689    }
690    console.info(`Succeeded in converting to text. Data: ${data}`);
691});
692```
693
694### convertToText<sup>(deprecated)</sup>
695
696convertToText(): Promise&lt;string&gt;
697
698将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。
699> **说明:**
700>
701> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
702
703**系统能力:** SystemCapability.MiscServices.Pasteboard
704
705**返回值:**
706
707| 类型 | 说明 |
708| -------- | -------- |
709| Promise&lt;string&gt; | Promise对象,返回强制转换的文本内容。 |
710
711**示例:**
712
713```ts
714import { BusinessError } from '@kit.BasicServicesKit';
715
716let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
717record.convertToText().then((data: string) => {
718    console.info(`Succeeded in converting to text. Data: ${data}`);
719}).catch((err: BusinessError) => {
720    console.error(`Failed to convert to text. Cause: ${err.message}`);
721});
722```
723
724## PasteData
725
726剪贴板内容对象。剪贴板内容包含一个或者多个内容条目([PasteDataRecord](#pastedatarecord7))以及属性描述对象([PasteDataProperty](#pastedataproperty7))。
727
728在调用PasteData的接口前,需要先通过[createData()](#pasteboardcreatedata9)或[getData()](#getdata9)获取一个PasteData对象。
729
730**系统能力:** SystemCapability.MiscServices.Pasteboard
731
732### getPrimaryText
733
734getPrimaryText(): string
735
736获取首个条目的纯文本内容。
737
738**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
739
740**系统能力:** SystemCapability.MiscServices.Pasteboard
741
742**返回值:**
743
744| 类型 | 说明 |
745| -------- | -------- |
746| string | 纯文本内容。 |
747
748**示例:**
749
750```ts
751let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
752let plainText: string = pasteData.getPrimaryText();
753```
754
755### getPrimaryHtml<sup>7+</sup>
756
757getPrimaryHtml(): string
758
759获取首个条目的HTML内容。
760
761**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
762
763**系统能力:** SystemCapability.MiscServices.Pasteboard
764
765**返回值:**
766
767| 类型 | 说明 |
768| -------- | -------- |
769| string | HTML内容。 |
770
771**示例:**
772
773```ts
774let 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>";
775let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, html);
776let htmlText: string = pasteData.getPrimaryHtml();
777```
778
779### getPrimaryWant<sup>7+</sup>
780
781getPrimaryWant(): Want
782
783获取首个条目的Want对象内容。
784
785**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
786
787**系统能力:** SystemCapability.MiscServices.Pasteboard
788
789**返回值:**
790
791| 类型 | 说明 |
792| -------- | -------- |
793| [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Want对象内容。 |
794
795**示例:**
796
797```ts
798import { Want } from '@kit.AbilityKit';
799
800let object: Want = {
801    bundleName: "com.example.aafwk.test",
802    abilityName: "com.example.aafwk.test.TwoAbility"
803};
804let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, object);
805let want: Want = pasteData.getPrimaryWant();
806```
807
808### getPrimaryUri<sup>7+</sup>
809
810getPrimaryUri(): string
811
812获取首个条目的URI内容。
813
814**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
815
816**系统能力:** SystemCapability.MiscServices.Pasteboard
817
818**返回值:**
819
820| 类型 | 说明 |
821| -------- | -------- |
822| string | URI内容。 |
823
824**示例:**
825
826```ts
827let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
828let uri: string = pasteData.getPrimaryUri();
829```
830
831### getPrimaryPixelMap<sup>9+</sup>
832
833getPrimaryPixelMap(): image.PixelMap
834
835获取首个条目的PixelMap内容。
836
837**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
838
839**系统能力:** SystemCapability.MiscServices.Pasteboard
840
841**返回值:**
842
843| 类型 | 说明 |
844| -------- | -------- |
845| [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | PixelMap内容。 |
846
847**示例:**
848
849```ts
850import { image } from '@kit.ImageKit';
851
852let buffer = new ArrayBuffer(128);
853let realSize: image.Size = { height: 3, width: 5 };
854let opt: image.InitializationOptions = {
855    size: realSize,
856    pixelFormat: 3,
857    editable: true,
858    alphaType: 1,
859    scaleMode: 1
860};
861image.createPixelMap(buffer, opt).then((pixelMap: image.PixelMap) => {
862    let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
863    let PixelMap: image.PixelMap = pasteData.getPrimaryPixelMap();
864});
865```
866
867### addRecord<sup>7+</sup>
868
869addRecord(record: PasteDataRecord): void
870
871向当前剪贴板内容中添加一条条目,同时也会将条目类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
872
873**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
874
875**系统能力:** SystemCapability.MiscServices.Pasteboard
876
877**参数:**
878
879| 参数名 | 类型 | 必填 | 说明 |
880| -------- | -------- | -------- | -------- |
881| record | [PasteDataRecord](#pastedatarecord7) | 是 | 待添加的条目。 |
882
883**示例:**
884
885```ts
886let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
887let textRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
888let 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>";
889let htmlRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, html);
890pasteData.addRecord(textRecord);
891pasteData.addRecord(htmlRecord);
892```
893### addRecord<sup>9+</sup>
894
895addRecord(mimeType: string, value: ValueType): void
896
897向当前剪贴板内容中添加一条自定义数据内容条目,同时也会将自定义数据类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
898
899**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
900
901**系统能力:** SystemCapability.MiscServices.Pasteboard
902
903**参数:**
904
905| 参数名 | 类型 | 必填 | 说明 |
906| -------- | -------- | -------- | -------- |
907| mimeType | string | 是 | 自定义数据的MIME类型, 其长度不能超过1024个字节。 |
908| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 |
909
910**错误码:**
911
912以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和见[剪贴板错误码](errorcode-pasteboard.md)。
913
914| 错误码ID | 错误信息 |
915| -------- | -------- |
916| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
917
918**示例:**
919
920  ```ts
921  let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
922  let dataXml = new ArrayBuffer(256);
923  pasteData.addRecord('app/xml', dataXml);
924  ```
925
926### getMimeTypes<sup>7+</sup>
927
928getMimeTypes(): Array&lt;string&gt;
929
930获取剪贴板中[PasteDataProperty](#pastedataproperty7)的mimeTypes列表,当剪贴板内容为空时,返回列表为空。
931
932**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
933
934**系统能力:** SystemCapability.MiscServices.Pasteboard
935
936**返回值:**
937
938| 类型 | 说明 |
939| -------- | -------- |
940| Array&lt;string&gt; | 剪贴板内容条目的数据类型,非重复的类型列表。 |
941
942**示例:**
943
944```ts
945let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
946let types: string[] = pasteData.getMimeTypes();
947```
948
949### getPrimaryMimeType<sup>7+</sup>
950
951getPrimaryMimeType(): string
952
953获取剪贴板内容中首个条目的数据类型。
954
955**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
956
957**系统能力:** SystemCapability.MiscServices.Pasteboard
958
959**返回值:**
960
961| 类型 | 说明 |
962| -------- | -------- |
963| string | 首个条目的数据类型。 |
964
965**示例:**
966
967```ts
968let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
969let type: string = pasteData.getPrimaryMimeType();
970```
971
972### getProperty<sup>7+</sup>
973
974getProperty(): PasteDataProperty
975
976获取剪贴板内容的属性描述对象。
977
978**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
979
980**系统能力:** SystemCapability.MiscServices.Pasteboard
981
982**返回值:**
983
984| 类型 | 说明 |
985| -------- | -------- |
986| [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 |
987
988**示例:**
989
990```ts
991let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
992let property: pasteboard.PasteDataProperty = pasteData.getProperty();
993```
994
995### setProperty<sup>9+</sup>
996
997setProperty(property: PasteDataProperty): void
998
999设置剪贴板内容的属性描述对象[PasteDataProperty](#pastedataproperty7)。
1000
1001**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1002
1003**系统能力:** SystemCapability.MiscServices.Pasteboard
1004
1005**参数:**
1006
1007| 参数名 | 类型 | 必填 | 说明 |
1008| -------- | -------- | -------- | -------- |
1009| property | [PasteDataProperty](#pastedataproperty7) | 是 | 属性描述对象。 |
1010
1011**错误码:**
1012
1013以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1014
1015| 错误码ID | 错误信息 |
1016| -------- | -------- |
1017| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1018
1019**示例:**
1020
1021```ts
1022type AdditionType = Record<string, Record<string, Object>>;
1023
1024let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'application/xml');
1025let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
1026prop.shareOption = pasteboard.ShareOption.INAPP;
1027// 需要注意,不支持对addition进行追加属性的操作,只能通过重新赋值的方式达到追加属性的目的。
1028prop.additions = { 'TestOne': { 'Test': 123 }, 'TestTwo': { 'Test': 'additions' } } as AdditionType;
1029prop.tag = 'TestTag';
1030pasteData.setProperty(prop);
1031```
1032[PasteDataProperty](#pastedataproperty7)的localOnly与shareOption属性互斥,最终结果以shareOption为准,shareOption会影响localOnly的值。
1033```ts
1034(async () => {
1035    let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
1036    let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
1037    prop.shareOption = pasteboard.ShareOption.INAPP;
1038    prop.localOnly = false;
1039    pasteData.setProperty(prop);
1040    let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1041
1042    await systemPasteboard.setData(pasteData).then(async () => {
1043        console.info('Succeeded in setting PasteData.');
1044        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
1045            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
1046            prop.localOnly; // true
1047        });
1048    });
1049
1050    prop.shareOption = pasteboard.ShareOption.LOCALDEVICE;
1051    prop.localOnly = false;
1052    pasteData.setProperty(prop);
1053
1054    await systemPasteboard.setData(pasteData).then(async () => {
1055        console.info('Succeeded in setting PasteData.');
1056        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
1057            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
1058            prop.localOnly; // true
1059        });
1060    });
1061
1062    prop.shareOption = pasteboard.ShareOption.CROSSDEVICE;
1063    prop.localOnly = true;
1064    pasteData.setProperty(prop);
1065
1066    await systemPasteboard.setData(pasteData).then(async () => {
1067        console.info('Succeeded in setting PasteData.');
1068        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
1069            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
1070            prop.localOnly; // false
1071        });
1072    });
1073})()
1074```
1075
1076### getRecord<sup>9+</sup>
1077
1078getRecord(index: number): PasteDataRecord
1079
1080获取剪贴板内容中指定下标的条目。
1081
1082**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1083
1084**系统能力:** SystemCapability.MiscServices.Pasteboard
1085
1086**参数:**
1087
1088| 参数名 | 类型 | 必填 | 说明 |
1089| -------- | -------- | -------- | -------- |
1090| index | number | 是 | 指定条目的下标。 |
1091
1092**返回值:**
1093
1094| 类型 | 说明 |
1095| -------- | -------- |
1096| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |
1097
1098**错误码:**
1099
1100以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
1101
1102| 错误码ID | 错误信息 |
1103| -------- | -------- |
1104| 12900001 | The index is out of the record. |
1105| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1106
1107**示例:**
1108
1109```ts
1110let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
1111let record: pasteboard.PasteDataRecord = pasteData.getRecord(0);
1112```
1113
1114### getRecordCount<sup>7+</sup>
1115
1116getRecordCount(): number
1117
1118获取剪贴板内容中条目的个数。
1119
1120**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1121
1122**系统能力:** SystemCapability.MiscServices.Pasteboard
1123
1124**返回值:**
1125
1126| 类型 | 说明 |
1127| -------- | -------- |
1128| number | 条目的个数。 |
1129
1130**示例:**
1131
1132```ts
1133let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
1134let count: number = pasteData.getRecordCount();
1135```
1136
1137### getTag<sup>7+</sup>
1138
1139getTag(): string
1140
1141获取剪贴板内容中用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。
1142
1143**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1144
1145**系统能力:** SystemCapability.MiscServices.Pasteboard
1146
1147**返回值:**
1148
1149| 类型 | 说明 |
1150| -------- | -------- |
1151| string | 返回用户自定义的标签内容,如果没有设置用户自定义的标签内容,将返回空。 |
1152
1153**示例:**
1154
1155```ts
1156let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
1157let tag: string = pasteData.getTag();
1158```
1159
1160### hasType<sup>9+</sup>
1161
1162hasType(mimeType: string): boolean
1163
1164检查剪贴板内容中是否有指定的MIME数据类型。
1165
1166**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1167
1168**系统能力:** SystemCapability.MiscServices.Pasteboard
1169
1170**参数:**
1171
1172| 参数名 | 类型 | 必填 | 说明 |
1173| -------- | -------- | -------- | -------- |
1174| mimeType | string | 是 | 待查询的数据类型。 |
1175
1176**返回值:**
1177
1178| 类型 | 说明 |
1179| -------- | -------- |
1180| boolean | 有指定的数据类型返回true,否则返回false。 |
1181
1182**错误码:**
1183
1184以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1185
1186| 错误码ID | 错误信息 |
1187| -------- | -------- |
1188| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1189
1190**示例:**
1191
1192```ts
1193let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
1194let hasType: boolean = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN);
1195```
1196
1197### removeRecord<sup>9+</sup>
1198
1199removeRecord(index: number): void
1200
1201移除剪贴板内容中指定下标的条目。
1202
1203**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1204
1205**系统能力:** SystemCapability.MiscServices.Pasteboard
1206
1207**参数:**
1208
1209| 参数名 | 类型 | 必填 | 说明 |
1210| -------- | -------- | -------- | -------- |
1211| index | number | 是 | 指定的下标。 |
1212
1213**错误码:**
1214
1215以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
1216
1217| 错误码ID | 错误信息 |
1218| -------- | -------- |
1219| 12900001 | The index is out of the record. |
1220| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1221
1222**示例:**
1223
1224```ts
1225let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
1226pasteData.removeRecord(0);
1227```
1228
1229### replaceRecord<sup>9+</sup>
1230
1231replaceRecord(index: number, record: PasteDataRecord): void
1232
1233替换剪贴板内容中指定下标的条目。
1234
1235**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1236
1237**系统能力:** SystemCapability.MiscServices.Pasteboard
1238
1239**参数:**
1240
1241| 参数名 | 类型 | 必填 | 说明 |
1242| -------- | -------- | -------- | -------- |
1243| index | number | 是 | 指定的下标。 |
1244| record | [PasteDataRecord](#pastedatarecord7) | 是 | 新条目的内容。 |
1245
1246**错误码:**
1247
1248以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
1249
1250| 错误码ID | 错误信息 |
1251| -------- | -------- |
1252| 12900001 | The index is out of the record. |
1253| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1254
1255**示例:**
1256
1257```ts
1258let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
1259let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
1260pasteData.replaceRecord(0, record);
1261```
1262
1263### pasteStart<sup>12+</sup>
1264
1265pasteStart(): void
1266
1267读取剪贴板数据前,通知剪贴板服务保留跨设备通道。
1268
1269**系统能力:** SystemCapability.MiscServices.Pasteboard
1270
1271**示例:**
1272
1273```ts
1274import { BusinessError } from '@kit.BasicServicesKit';
1275
1276let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1277systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
1278    if (err) {
1279        console.error('Failed to get PasteData. Cause: ' + err.message);
1280        return;
1281    }
1282    pasteData.pasteStart();
1283    console.log(`using data: ${pasteData.getPrimaryText()}`);
1284    pasteData.pasteComplete();
1285});
1286```
1287
1288### pasteComplete<sup>12+</sup>
1289
1290pasteComplete(): void
1291
1292通知剪贴板服务数据使用已完成。
1293
1294**系统能力:** SystemCapability.MiscServices.Pasteboard
1295
1296**示例:**
1297
1298```ts
1299import { BusinessError } from '@kit.BasicServicesKit';
1300
1301let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1302systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
1303    if (err) {
1304        console.error('Failed to get PasteData. Cause: ' + err.message);
1305        return;
1306    }
1307    pasteData.pasteStart();
1308    console.log(`using data: ${pasteData.getPrimaryText()}`);
1309    pasteData.pasteComplete();
1310});
1311```
1312
1313### addHtmlRecord<sup>(deprecated)</sup>
1314
1315addHtmlRecord(htmlText: string): void
1316
1317向当前剪贴板内容中添加一条HTML内容条目,并将MIMETYPE_TEXT_HTML添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
1318
1319> **说明:**
1320>
1321> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1322
1323**系统能力:** SystemCapability.MiscServices.Pasteboard
1324
1325**参数:**
1326
1327| 参数名 | 类型 | 必填 | 说明 |
1328| -------- | -------- | -------- | -------- |
1329| htmlText | string | 是 | HTML内容。 |
1330
1331**示例:**
1332
1333```ts
1334let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1335let 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>";
1336pasteData.addHtmlRecord(html);
1337```
1338
1339### addWantRecord<sup>(deprecated)</sup>
1340
1341addWantRecord(want: Want): void
1342
1343向当前剪贴板内容中添加一条Want条目,并将MIMETYPE_TEXT_WANT添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
1344
1345> **说明:**
1346>
1347> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1348
1349**系统能力:** SystemCapability.MiscServices.Pasteboard
1350
1351**参数:**
1352
1353| 参数名 | 类型 | 必填 | 说明 |
1354| -------- | -------- | -------- | -------- |
1355| want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是 | Want对象内容。 |
1356
1357**示例:**
1358
1359```ts
1360import { Want } from '@kit.AbilityKit';
1361
1362let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1363let object: Want = {
1364    bundleName: "com.example.aafwk.test",
1365    abilityName: "com.example.aafwk.test.TwoAbility"
1366};
1367pasteData.addWantRecord(object);
1368```
1369
1370### addTextRecord<sup>(deprecated)</sup>
1371
1372addTextRecord(text: string): void
1373
1374向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
1375
1376> **说明:**
1377>
1378> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1379
1380**系统能力:** SystemCapability.MiscServices.Pasteboard
1381
1382**参数:**
1383
1384| 参数名 | 类型 | 必填 | 说明 |
1385| -------- | -------- | -------- | -------- |
1386| text | string | 是 | 纯文本内容。 |
1387
1388**示例:**
1389
1390```ts
1391let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1392pasteData.addTextRecord('good');
1393```
1394
1395### addUriRecord<sup>(deprecated)</sup>
1396
1397addUriRecord(uri: string): void
1398
1399向当前剪贴板内容中添加一条URI条目,并将MIMETYPE_TEXT_URI添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
1400
1401> **说明:**
1402>
1403> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1404
1405**系统能力:** SystemCapability.MiscServices.Pasteboard
1406
1407**参数:**
1408
1409| 参数名 | 类型 | 必填 | 说明 |
1410| -------- | -------- | -------- | -------- |
1411| uri | string | 是 | URI内容。 |
1412
1413**示例:**
1414
1415```ts
1416let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1417pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt');
1418```
1419### getRecordAt<sup>(deprecated)</sup>
1420
1421getRecordAt(index: number): PasteDataRecord
1422
1423获取剪贴板内容中指定下标的条目。
1424> **说明:**
1425>
1426> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[getRecord](#getrecord9)替代。
1427
1428**系统能力:** SystemCapability.MiscServices.Pasteboard
1429
1430**参数:**
1431
1432| 参数名 | 类型 | 必填 | 说明 |
1433| -------- | -------- | -------- | -------- |
1434| index | number | 是 | 指定条目的下标。 |
1435
1436**返回值:**
1437
1438| 类型 | 说明 |
1439| -------- | -------- |
1440| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |
1441
1442**错误码:**
1443
1444以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1445
1446| 错误码ID | 错误信息 |
1447| -------- | -------- |
1448| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1449
1450**示例:**
1451
1452```ts
1453let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1454let record: pasteboard.PasteDataRecord = pasteData.getRecordAt(0);
1455```
1456
1457### hasMimeType<sup>(deprecated)</sup>
1458
1459hasMimeType(mimeType: string): boolean
1460
1461检查剪贴板内容中是否有指定的数据类型。
1462> **说明:**
1463>
1464> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasType](#hastype9)替代。
1465
1466**系统能力:** SystemCapability.MiscServices.Pasteboard
1467
1468**参数:**
1469
1470| 参数名 | 类型 | 必填 | 说明 |
1471| -------- | -------- | -------- | -------- |
1472| mimeType | string | 是 | 待查询的数据类型。 |
1473
1474**返回值:**
1475
1476| 类型 | 说明 |
1477| -------- | -------- |
1478| boolean | 有指定的数据类型返回true,否则返回false。 |
1479
1480**错误码:**
1481
1482以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1483
1484| 错误码ID | 错误信息 |
1485| -------- | -------- |
1486| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1487
1488**示例:**
1489
1490```ts
1491let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1492let hasType: boolean = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);
1493```
1494### removeRecordAt<sup>(deprecated)</sup>
1495
1496removeRecordAt(index: number): boolean
1497
1498移除剪贴板内容中指定下标的条目。
1499> **说明:**
1500>
1501> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[removeRecord](#removerecord9)替代。
1502
1503**系统能力:** SystemCapability.MiscServices.Pasteboard
1504
1505**参数:**
1506
1507| 参数名 | 类型 | 必填 | 说明 |
1508| -------- | -------- | -------- | -------- |
1509| index | number | 是 | 指定的下标。 |
1510
1511**返回值:**
1512
1513| 类型 | 说明 |
1514| -------- | -------- |
1515| boolean | 成功移除返回true,失败返回false。 |
1516
1517**错误码:**
1518
1519以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1520
1521| 错误码ID | 错误信息 |
1522| -------- | -------- |
1523| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1524
1525**示例:**
1526
1527```ts
1528let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1529let isRemove: boolean = pasteData.removeRecordAt(0);
1530```
1531### replaceRecordAt<sup>(deprecated)</sup>
1532
1533replaceRecordAt(index: number, record: PasteDataRecord): boolean
1534
1535替换剪贴板内容中指定下标的条目。
1536> **说明:**
1537>
1538> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[replaceRecord](#replacerecord9)替代。
1539
1540**系统能力:** SystemCapability.MiscServices.Pasteboard
1541
1542**参数:**
1543
1544| 参数名 | 类型 | 必填 | 说明 |
1545| -------- | -------- | -------- | -------- |
1546| index | number | 是 | 指定的下标。 |
1547| record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 |
1548
1549**返回值:**
1550
1551| 类型 | 说明 |
1552| -------- | -------- |
1553| boolean | 成功替换返回true,失败返回false。 |
1554
1555**示例:**
1556
1557```ts
1558let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1559let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
1560let isReplace: boolean = pasteData.replaceRecordAt(0, record);
1561```
1562
1563## SystemPasteboard
1564
1565系统剪贴板对象。
1566
1567在调用SystemPasteboard的接口前,需要先通过[getSystemPasteboard](#pasteboardgetsystempasteboard)获取系统剪贴板。
1568
1569```ts
1570let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1571```
1572
1573### on('update')<sup>7+</sup>
1574
1575on(type:  'update', callback: () =&gt;void ): void
1576
1577订阅系统剪贴板内容变化事件,当系统剪贴板中内容变化时触发用户程序的回调。
1578
1579**系统能力:** SystemCapability.MiscServices.Pasteboard
1580
1581**参数:**
1582
1583| 参数名 | 类型 | 必填 | 说明 |
1584| -------- | -------- | -------- | -------- |
1585| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 |
1586| callback | function | 是 | 剪贴板中内容变化时触发的用户程序的回调。 |
1587
1588**错误码:**
1589
1590以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1591
1592| 错误码ID | 错误信息 |
1593| -------- | -------- |
1594| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1595
1596**示例:**
1597
1598```ts
1599let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1600let listener = () => {
1601    console.info('The system pasteboard has changed.');
1602};
1603systemPasteboard.on('update', listener);
1604```
1605
1606### off('update')<sup>7+</sup>
1607
1608off(type:  'update', callback?: () =&gt;void ): void
1609
1610取消订阅系统剪贴板内容变化事件。
1611
1612**系统能力:** SystemCapability.MiscServices.Pasteboard
1613
1614**参数:**
1615
1616| 参数名 | 类型 | 必填 | 说明                                                      |
1617| -------- | -------- | -------- |---------------------------------------------------------|
1618| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。                              |
1619| callback | function | 否 | 剪贴板中内容变化时触发的用户程序的回调。如果此参数未填,表明清除本应用的所有监听回调,否则表示清除指定监听回调。|
1620
1621**错误码:**
1622
1623以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1624
1625| 错误码ID | 错误信息 |
1626| -------- | -------- |
1627| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1628
1629**示例:**
1630
1631```ts
1632let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1633let listener = () => {
1634    console.info('The system pasteboard has changed.');
1635};
1636systemPasteboard.off('update', listener);
1637```
1638
1639### clearData<sup>9+</sup>
1640
1641clearData(callback: AsyncCallback&lt;void&gt;): void
1642
1643清空系统剪贴板内容,使用callback异步回调。
1644
1645**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1646
1647**系统能力:** SystemCapability.MiscServices.Pasteboard
1648
1649**参数:**
1650
1651| 参数名 | 类型 | 必填 | 说明 |
1652| -------- | -------- | -------- | -------- |
1653| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |
1654
1655**错误码:**
1656
1657以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1658
1659| 错误码ID | 错误信息 |
1660| -------- | -------- |
1661| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1662
1663**示例:**
1664
1665```ts
1666let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1667systemPasteboard.clearData((err, data) => {
1668    if (err) {
1669        console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
1670        return;
1671    }
1672    console.info('Succeeded in clearing the pasteboard.');
1673});
1674```
1675
1676### clearData<sup>9+</sup>
1677
1678clearData(): Promise&lt;void&gt;
1679
1680清空系统剪贴板内容,使用Promise异步回调。
1681
1682**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1683
1684**系统能力:** SystemCapability.MiscServices.Pasteboard
1685
1686**返回值:**
1687
1688| 类型 | 说明 |
1689| -------- | -------- |
1690| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1691
1692**示例:**
1693
1694```ts
1695import { BusinessError } from '@kit.BasicServicesKit';
1696
1697let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1698systemPasteboard.clearData().then((data: void) => {
1699    console.info('Succeeded in clearing the pasteboard.');
1700}).catch((err: BusinessError) => {
1701    console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
1702});
1703```
1704
1705### setData<sup>9+</sup>
1706
1707setData(data: PasteData, callback: AsyncCallback&lt;void&gt;): void
1708
1709将数据写入系统剪贴板,使用callback异步回调。
1710
1711**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1712
1713**系统能力:** SystemCapability.MiscServices.Pasteboard
1714
1715**参数:**
1716
1717| 参数名 | 类型 | 必填 | 说明 |
1718| -------- | -------- | -------- | -------- |
1719| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1720| callback | AsyncCallback&lt;void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |
1721
1722**错误码:**
1723
1724以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
1725
1726| 错误码ID | 错误信息 |
1727| -------- | -------- |
1728| 12900003 | Another copy or paste operation is in progress. |
1729| 12900004 | Replication is prohibited. |
1730| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1731
1732**示例:**
1733
1734```ts
1735let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
1736let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1737systemPasteboard.setData(pasteData, (err, data) => {
1738    if (err) {
1739        console.error('Failed to set PasteData. Cause: ' + err.message);
1740        return;
1741    }
1742    console.info('Succeeded in setting PasteData.');
1743});
1744```
1745
1746### setData<sup>9+</sup>
1747
1748setData(data: PasteData): Promise&lt;void&gt;
1749
1750将数据写入系统剪贴板,使用Promise异步回调。
1751
1752**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1753
1754**系统能力:** SystemCapability.MiscServices.Pasteboard
1755
1756**参数:**
1757
1758| 参数名 | 类型 | 必填 | 说明 |
1759| -------- | -------- | -------- | -------- |
1760| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1761
1762**返回值:**
1763
1764| 类型 | 说明 |
1765| -------- | -------- |
1766| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1767
1768**错误码:**
1769
1770以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
1771
1772| 错误码ID | 错误信息 |
1773| -------- | -------- |
1774| 12900003 | Another copy or paste operation is in progress. |
1775| 12900004 | Replication is prohibited. |
1776| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1777
1778**示例:**
1779
1780```ts
1781import { BusinessError } from '@kit.BasicServicesKit';
1782
1783let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
1784let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1785systemPasteboard.setData(pasteData).then((data: void) => {
1786    console.info('Succeeded in setting PasteData.');
1787}).catch((err: BusinessError) => {
1788    console.error('Failed to set PasteData. Cause: ' + err.message);
1789});
1790```
1791
1792### getData<sup>9+</sup>
1793
1794getData( callback: AsyncCallback&lt;PasteData&gt;): void
1795
1796读取系统剪贴板内容,使用callback异步回调。
1797
1798**需要权限**:ohos.permission.READ_PASTEBOARD
1799
1800**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1801
1802**系统能力:** SystemCapability.MiscServices.Pasteboard
1803
1804**参数:**
1805
1806| 参数名 | 类型 | 必填 | 说明 |
1807| -------- | -------- | -------- | -------- |
1808| callback | AsyncCallback&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 |
1809
1810**错误码:**
1811
1812以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
1813
1814| 错误码ID | 错误信息 |
1815| -------- | -------- |
1816| 12900003 | Another copy or paste operation is in progress. |
1817| 201      | Permission verification failed. The application does not have the permission required to call the API. |
1818| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1819
1820**示例:**
1821
1822```ts
1823import { BusinessError } from '@kit.BasicServicesKit';
1824
1825let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1826systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
1827    if (err) {
1828        console.error('Failed to get PasteData. Cause: ' + err.message);
1829        return;
1830    }
1831    let text: string = pasteData.getPrimaryText();
1832});
1833```
1834
1835### getData<sup>9+</sup>
1836
1837getData(): Promise&lt;PasteData&gt;
1838
1839读取系统剪贴板内容,使用Promise异步回调。
1840
1841**需要权限**:ohos.permission.READ_PASTEBOARD
1842
1843**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1844
1845**系统能力:** SystemCapability.MiscServices.Pasteboard
1846
1847**返回值:**
1848
1849| 类型 | 说明 |
1850| -------- | -------- |
1851| Promise&lt;[PasteData](#pastedata)&gt; | Promise对象,返回系统剪贴板数据。 |
1852
1853**错误码:**
1854
1855以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
1856
1857| 错误码ID | 错误信息 |
1858| -------- | -------- |
1859| 12900003 | Another copy or paste operation is in progress. |
1860| 201      | Permission verification failed. The application does not have the permission required to call the API. |
1861
1862**示例:**
1863
1864```ts
1865import { BusinessError } from '@kit.BasicServicesKit';
1866
1867let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1868systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
1869    let text: string = pasteData.getPrimaryText();
1870}).catch((err: BusinessError) => {
1871    console.error('Failed to get PasteData. Cause: ' + err.message);
1872});
1873```
1874
1875### hasData<sup>9+</sup>
1876
1877hasData(callback:  AsyncCallback&lt;boolean&gt;): void
1878
1879判断系统剪贴板中是否有内容,使用callback异步回调。
1880
1881**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1882
1883**系统能力:** SystemCapability.MiscServices.Pasteboard
1884
1885**参数:**
1886
1887| 参数名 | 类型 | 必填 | 说明 |
1888| -------- | -------- | -------- | -------- |
1889| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
1890
1891**错误码:**
1892
1893以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1894
1895| 错误码ID | 错误信息 |
1896| -------- | -------- |
1897| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1898
1899**示例:**
1900
1901```ts
1902import { BusinessError } from '@kit.BasicServicesKit';
1903
1904let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1905systemPasteboard.hasData((err: BusinessError, data: boolean) => {
1906    if (err) {
1907        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1908        return;
1909    }
1910    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1911});
1912```
1913
1914### hasData<sup>9+</sup>
1915
1916hasData(): Promise&lt;boolean&gt;
1917
1918判断系统剪贴板中是否有内容,使用Promise异步回调。
1919
1920**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1921
1922**系统能力:** SystemCapability.MiscServices.Pasteboard
1923
1924**返回值:**
1925
1926| 类型 | 说明 |
1927| -------- | -------- |
1928| Promise&lt;boolean&gt; | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
1929
1930**示例:**
1931
1932```ts
1933import { BusinessError } from '@kit.BasicServicesKit';
1934
1935let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1936systemPasteboard.hasData().then((data: boolean) => {
1937    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1938}).catch((err: BusinessError) => {
1939    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1940});
1941```
1942
1943### clear<sup>(deprecated)</sup>
1944
1945clear(callback: AsyncCallback&lt;void&gt;): void
1946
1947清空系统剪贴板内容,使用callback异步回调。
1948> **说明:**
1949>
1950> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9)替代。
1951
1952**系统能力:** SystemCapability.MiscServices.Pasteboard
1953
1954**参数:**
1955
1956| 参数名 | 类型 | 必填 | 说明 |
1957| -------- | -------- | -------- | -------- |
1958| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |
1959
1960**错误码:**
1961
1962以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1963
1964| 错误码ID | 错误信息 |
1965| -------- | -------- |
1966| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1967
1968**示例:**
1969
1970```ts
1971let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1972systemPasteboard.clear((err, data) => {
1973    if (err) {
1974        console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
1975        return;
1976    }
1977    console.info('Succeeded in clearing the PasteData.');
1978});
1979```
1980
1981### clear<sup>(deprecated)</sup>
1982
1983clear(): Promise&lt;void&gt;
1984
1985清空系统剪贴板内容,使用Promise异步回调。
1986> **说明:**
1987>
1988> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9-1)替代。
1989
1990**系统能力:** SystemCapability.MiscServices.Pasteboard
1991
1992**返回值:**
1993
1994| 类型 | 说明 |
1995| -------- | -------- |
1996| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1997
1998**示例:**
1999
2000```ts
2001import { BusinessError } from '@kit.BasicServicesKit';
2002
2003let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2004systemPasteboard.clear().then((data) => {
2005    console.info('Succeeded in clearing the PasteData.');
2006}).catch((err: BusinessError) => {
2007    console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
2008});
2009```
2010
2011### getPasteData<sup>(deprecated)</sup>
2012
2013getPasteData( callback: AsyncCallback&lt;PasteData&gt;): void
2014
2015读取系统剪贴板内容,使用callback异步回调。
2016> **说明:**
2017>
2018> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9)替代。
2019
2020**系统能力:** SystemCapability.MiscServices.Pasteboard
2021
2022**参数:**
2023
2024| 参数名 | 类型 | 必填 | 说明 |
2025| -------- | -------- | -------- | -------- |
2026| callback | AsyncCallback&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 |
2027
2028**错误码:**
2029
2030以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2031
2032| 错误码ID | 错误信息 |
2033| -------- | -------- |
2034| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2035
2036**示例:**
2037
2038```ts
2039import { BusinessError } from '@kit.BasicServicesKit';
2040
2041let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2042systemPasteboard.getPasteData((err: BusinessError, pasteData: pasteboard.PasteData) => {
2043    if (err) {
2044        console.error('Failed to get PasteData. Cause: ' + err.message);
2045        return;
2046    }
2047    let text: string = pasteData.getPrimaryText();
2048});
2049```
2050
2051### getPasteData<sup>(deprecated)</sup>
2052
2053getPasteData(): Promise&lt;PasteData&gt;
2054
2055读取系统剪贴板内容,使用Promise异步回调。
2056> **说明:**
2057>
2058> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9-1)替代。
2059
2060**系统能力:** SystemCapability.MiscServices.Pasteboard
2061
2062**返回值:**
2063
2064| 类型 | 说明 |
2065| -------- | -------- |
2066| Promise&lt;[PasteData](#pastedata)&gt; | Promise对象,返回系统剪贴板数据。 |
2067
2068**示例:**
2069
2070```ts
2071import { BusinessError } from '@kit.BasicServicesKit';
2072
2073let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2074systemPasteboard.getPasteData().then((pasteData: pasteboard.PasteData) => {
2075    let text: string = pasteData.getPrimaryText();
2076}).catch((err: BusinessError) => {
2077    console.error('Failed to get PasteData. Cause: ' + err.message);
2078});
2079```
2080
2081### hasPasteData<sup>(deprecated)</sup>
2082
2083hasPasteData(callback:  AsyncCallback&lt;boolean&gt;): void
2084
2085判断系统剪贴板中是否有内容,使用callback异步回调。
2086> **说明:**
2087>
2088> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9)替代。
2089
2090**系统能力:** SystemCapability.MiscServices.Pasteboard
2091
2092**参数:**
2093
2094| 参数名 | 类型 | 必填 | 说明 |
2095| -------- | -------- | -------- | -------- |
2096| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
2097
2098**错误码:**
2099
2100以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2101
2102| 错误码ID | 错误信息 |
2103| -------- | -------- |
2104| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2105
2106**示例:**
2107
2108```ts
2109import { BusinessError } from '@kit.BasicServicesKit';
2110
2111let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2112systemPasteboard.hasPasteData((err: BusinessError, data: boolean) => {
2113    if (err) {
2114        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
2115        return;
2116    }
2117    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
2118});
2119```
2120
2121### hasPasteData<sup>(deprecated)</sup>
2122
2123hasPasteData(): Promise&lt;boolean&gt;
2124
2125判断系统剪贴板中是否有内容,使用Promise异步回调。
2126> **说明:**
2127>
2128> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9-1)替代。
2129
2130**系统能力:** SystemCapability.MiscServices.Pasteboard
2131
2132**返回值:**
2133
2134| 类型 | 说明 |
2135| -------- | -------- |
2136| Promise&lt;boolean&gt; | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
2137
2138**示例:**
2139
2140```ts
2141import { BusinessError } from '@kit.BasicServicesKit';
2142
2143let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2144systemPasteboard.hasPasteData().then((data: boolean) => {
2145    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
2146}).catch((err: BusinessError) => {
2147    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
2148});
2149```
2150
2151### setPasteData<sup>(deprecated)</sup>
2152
2153setPasteData(data: PasteData, callback: AsyncCallback&lt;void&gt;): void
2154
2155将数据写入系统剪贴板,使用callback异步回调。
2156> **说明:**
2157>
2158> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9)替代。
2159
2160**系统能力:** SystemCapability.MiscServices.Pasteboard
2161
2162**参数:**
2163
2164| 参数名 | 类型 | 必填 | 说明 |
2165| -------- | -------- | -------- | -------- |
2166| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
2167| callback | AsyncCallback&lt;void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |
2168
2169**错误码:**
2170
2171以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2172
2173| 错误码ID | 错误信息 |
2174| -------- | -------- |
2175| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2176
2177**示例:**
2178
2179```ts
2180let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
2181let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2182systemPasteboard.setPasteData(pasteData, (err, data) => {
2183    if (err) {
2184        console.error('Failed to set PasteData. Cause: ' + err.message);
2185        return;
2186    }
2187    console.info('Succeeded in setting PasteData.');
2188});
2189```
2190### setPasteData<sup>(deprecated)</sup>
2191
2192setPasteData(data: PasteData): Promise&lt;void&gt;
2193
2194将数据写入系统剪贴板,使用Promise异步回调。
2195> **说明:**
2196>
2197> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9-1)替代。
2198
2199**系统能力:** SystemCapability.MiscServices.Pasteboard
2200
2201**参数:**
2202
2203| 参数名 | 类型 | 必填 | 说明 |
2204| -------- | -------- | -------- | -------- |
2205| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
2206
2207**返回值:**
2208
2209| 类型 | 说明 |
2210| -------- | -------- |
2211| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2212
2213**示例:**
2214
2215```ts
2216import { BusinessError } from '@kit.BasicServicesKit';
2217
2218let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
2219let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2220systemPasteboard.setPasteData(pasteData).then((data: void) => {
2221    console.info('Succeeded in setting PasteData.');
2222}).catch((err: BusinessError) => {
2223    console.error('Failed to set PasteData. Cause: ' + err.message);
2224});
2225```
2226### isRemoteData<sup>11+</sup>
2227
2228isRemoteData(): boolean
2229
2230判断剪贴板中的数据是否来自其他设备。
2231
2232**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2233
2234**系统能力:** SystemCapability.MiscServices.Pasteboard
2235
2236**返回值:**
2237
2238| 类型    | 说明                                  |
2239| ------- | ------------------------------------- |
2240| boolean | 是来自其他设备返回true,否则返回false。 |
2241
2242**错误码:**
2243
2244以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2245
2246| 错误码ID | 错误信息 |
2247| -------- | -------- |
2248| 12900005 | Request timed out. |
2249
2250**示例:**
2251
2252```ts
2253let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2254try {
2255    let result: boolean = systemPasteboard.isRemoteData();
2256    console.info(`Succeeded in checking the RemoteData. Result: ${result}`);
2257} catch (err) {
2258    console.error('Failed to check the RemoteData. Cause:' + err.message);
2259};
2260```
2261
2262### getDataSource<sup>11+</sup>
2263
2264getDataSource(): string
2265
2266获取数据来源。
2267
2268**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2269
2270**系统能力:** SystemCapability.MiscServices.Pasteboard
2271
2272**返回值:**
2273
2274| 类型   | 说明   |
2275| ------ | ------ |
2276| string | 数据来源。 |
2277
2278**错误码:**
2279
2280以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2281
2282| 错误码ID | 错误信息 |
2283| -------- | -------- |
2284| 12900005 | Request timed out. |
2285
2286**示例:**
2287
2288```ts
2289let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2290try {
2291    let result: string = systemPasteboard.getDataSource();
2292    console.info(`Succeeded in getting DataSource. Result: ${result}`);
2293} catch (err) {
2294    console.error('Failed to get DataSource. Cause:' + err.message);
2295};
2296```
2297
2298### hasDataType<sup>11+</sup>
2299
2300hasDataType(mimeType: string): boolean
2301
2302检查剪贴板内容中是否有指定类型的数据。
2303
2304**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2305
2306**系统能力:** SystemCapability.MiscServices.Pasteboard
2307
2308**参数:**
2309
2310| 参数名   | 类型   | 必填 | 说明               |
2311| -------- | ------ | ---- | ------------------ |
2312| mimeType | string | 是   | 数据类型。 |
2313
2314**返回值:**
2315
2316| 类型    | 说明                                        |
2317| ------- | ------------------------------------------- |
2318| boolean | 有指定类型的数据返回true,否则返回false。 |
2319
2320**错误码:**
2321
2322以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
2323
2324| 错误码ID | 错误信息 |
2325| -------- | -------- |
2326| 401 | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2327| 12900005 | Request timed out. |
2328
2329**示例:**
2330
2331```ts
2332let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2333try {
2334    let result: boolean = systemPasteboard.hasDataType(pasteboard.MIMETYPE_TEXT_PLAIN);
2335    console.info(`Succeeded in checking the DataType. Result: ${result}`);
2336} catch (err) {
2337    console.error('Failed to check the DataType. Cause:' + err.message);
2338};
2339```
2340
2341### clearDataSync<sup>11+</sup>
2342
2343clearDataSync(): void
2344
2345清空系统剪贴板内容, 此接口为同步接口。
2346
2347**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2348
2349**系统能力:** SystemCapability.MiscServices.Pasteboard
2350
2351**错误码:**
2352
2353以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2354
2355| 错误码ID | 错误信息 |
2356| -------- | -------- |
2357| 12900005 | Request timed out. |
2358
2359**示例:**
2360
2361```ts
2362let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2363try {
2364    systemPasteboard.clearDataSync();
2365    console.info('Succeeded in clearing the pasteboard.');
2366} catch (err) {
2367    console.error('Failed to clear the pasteboard. Cause:' + err.message);
2368};
2369```
2370
2371### getDataSync<sup>11+</sup>
2372
2373getDataSync(): PasteData
2374
2375读取系统剪贴板内容, 此接口为同步接口。
2376
2377**需要权限**:ohos.permission.READ_PASTEBOARD
2378
2379**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2380
2381**系统能力:** SystemCapability.MiscServices.Pasteboard
2382
2383**返回值:**
2384
2385| 类型                    | 说明                 |
2386| ----------------------- | -------------------- |
2387| [PasteData](#pastedata) | 返回系统剪贴板数据。 |
2388
2389**错误码:**
2390
2391以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
2392
2393| 错误码ID | 错误信息 |
2394| -------- | -------- |
2395| 12900005 | Request timed out. |
2396| 201      | Permission verification failed. The application does not have the permission required to call the API. |
2397
2398**示例:**
2399
2400```ts
2401let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2402try {
2403    let result: pasteboard.PasteData = systemPasteboard.getDataSync();
2404    console.info('Succeeded in getting PasteData.');
2405} catch (err) {
2406    console.error('Failed to get PasteData. Cause:' + err.message);
2407};
2408```
2409
2410### setDataSync<sup>11+</sup>
2411
2412setDataSync(data: PasteData): void
2413
2414将数据写入系统剪贴板, 此接口为同步接口。
2415
2416**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2417
2418**系统能力:** SystemCapability.MiscServices.Pasteboard
2419
2420**参数:**
2421
2422| 参数名 | 类型                    | 必填 | 说明             |
2423| ------ | ----------------------- | ---- | ---------------- |
2424| data   | [PasteData](#pastedata) | 是   | 需要写入剪贴板中的数据。 |
2425
2426**错误码:**
2427
2428以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[剪贴板错误码](errorcode-pasteboard.md)。
2429
2430| 错误码ID | 错误信息 |
2431| -------- | -------- |
2432| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2433| 12900005 | Request timed out. |
2434
2435**示例:**
2436
2437```ts
2438let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
2439let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2440try {
2441    systemPasteboard.setDataSync(pasteData);
2442    console.info('Succeeded in setting PasteData.');
2443} catch (err) {
2444    console.error('Failed to set PasteData. Cause:' + err.message);
2445};
2446```
2447
2448### hasDataSync<sup>11+</sup>
2449
2450hasDataSync(): boolean
2451
2452判断系统剪贴板中是否有内容, 此接口为同步接口。
2453
2454**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
2455
2456**系统能力:** SystemCapability.MiscServices.Pasteboard
2457
2458**返回值:**
2459
2460| 类型    | 说明                                                                    |
2461| ------- | ----------------------------------------------------------------------- |
2462| boolean | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
2463
2464**错误码:**
2465
2466以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2467
2468| 错误码ID | 错误信息 |
2469| -------- | -------- |
2470| 12900005 | Request timed out. |
2471
2472**示例:**
2473
2474```ts
2475let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2476try {
2477    let result: boolean = systemPasteboard.hasDataSync();
2478    console.info(`Succeeded in checking the PasteData. Result: ${result}`);
2479} catch (err) {
2480    console.error('Failed to check the PasteData. Cause:' + err.message);
2481};
2482```
2483
2484### getUnifiedData<sup>12+</sup>
2485
2486getUnifiedData(): Promise&lt;unifiedDataChannel.UnifiedData&gt;
2487
2488读取系统剪贴板内容,使用Promise异步回调。
2489
2490**需要权限**:ohos.permission.READ_PASTEBOARD
2491
2492**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2493
2494**系统能力:** SystemCapability.MiscServices.Pasteboard
2495
2496**返回值:**
2497
2498| 类型 | 说明 |
2499| -------- | -------- |
2500| Promise&lt;[unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata)&gt; | Promise对象,返回系统剪贴板数据。 |
2501
2502**错误码:**
2503
2504以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2505
2506| 错误码ID | 错误信息 |
2507| -------- | -------- |
2508| 201      | Permission verification failed. The application does not have the permission required to call the API. |
2509| 12900003 | Another copy or paste operation is in progress. |
2510
2511**示例:**
2512
2513```ts
2514import { BusinessError } from '@kit.BasicServicesKit';
2515import { unifiedDataChannel } from '@kit.ArkData';
2516import { uniformTypeDescriptor } from '@kit.ArkData';
2517
2518let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2519systemPasteboard.getUnifiedData().then((data) => {
2520    let records: Array<unifiedDataChannel.UnifiedRecord> = data.getRecords();
2521    for (let j = 0; j < records.length; j++) {
2522        if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
2523            let text = records[j] as unifiedDataChannel.PlainText;
2524            console.info(`${j + 1}.${text.textContent}`);
2525        }
2526    }
2527}).catch((err: BusinessError) => {
2528    console.error('Failed to get UnifiedData. Cause: ' + err.message);
2529});
2530```
2531
2532### getUnifiedDataSync<sup>12+</sup>
2533
2534getUnifiedDataSync(): unifiedDataChannel.UnifiedData
2535
2536读取系统剪贴板内容, 此接口为同步接口。
2537
2538**需要权限**:ohos.permission.READ_PASTEBOARD
2539
2540**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2541
2542**系统能力:** SystemCapability.MiscServices.Pasteboard
2543
2544**返回值:**
2545
2546| 类型                 | 说明                 |
2547| -------------------- | -------------------- |
2548| [unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata) | 返回系统剪贴板数据。 |
2549
2550**错误码:**
2551
2552以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2553
2554| 错误码ID | 错误信息 |
2555| -------- | -------- |
2556| 201      | Permission verification failed. The application does not have the permission required to call the API. |
2557| 12900005 | Request timed out. |
2558
2559**示例:**
2560
2561```ts
2562import { unifiedDataChannel } from '@kit.ArkData';
2563
2564let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2565try {
2566    let result: unifiedDataChannel.UnifiedData = systemPasteboard.getUnifiedDataSync();
2567    console.info('Succeeded in getting UnifiedData.');
2568} catch (err) {
2569    console.error('Failed to get UnifiedData. Cause:' + err.message);
2570};
2571```
2572
2573### setUnifiedData<sup>12+</sup>
2574
2575setUnifiedData(data: unifiedDataChannel.UnifiedData): Promise&lt;void&gt;
2576
2577将数据写入系统剪贴板,使用Promise异步回调。
2578
2579**系统能力:** SystemCapability.MiscServices.Pasteboard
2580
2581**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2582
2583**参数:**
2584
2585| 参数名 | 类型 | 必填 | 说明 |
2586| -------- | -------- | -------- | -------- |
2587| data | [unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata) | 是 | 	需要写入剪贴板中的数据。 |
2588
2589**返回值:**
2590
2591| 类型 | 说明 |
2592| -------- | -------- |
2593| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2594
2595**错误码:**
2596
2597以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2598
2599| 错误码ID | 错误信息 |
2600| -------- | -------- |
2601| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2602| 12900003 | Another copy or paste operation is in progress. |
2603| 12900004 | Replication is prohibited. |
2604
2605**示例:**
2606
2607```ts
2608import { BusinessError } from '@kit.BasicServicesKit';
2609import { unifiedDataChannel } from '@kit.ArkData';
2610
2611let plainTextData = new unifiedDataChannel.UnifiedData();
2612let plainText = new unifiedDataChannel.PlainText();
2613plainText.details = {
2614    Key: 'delayPlaintext',
2615    Value: 'delayPlaintext',
2616};
2617plainText.textContent = 'delayTextContent';
2618plainText.abstract = 'delayTextContent';
2619plainTextData.addRecord(plainText);
2620
2621let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2622systemPasteboard.setUnifiedData(plainTextData).then((data: void) => {
2623    console.info('Succeeded in setting UnifiedData.');
2624}).catch((err: BusinessError) => {
2625    console.error('Failed to set UnifiedData. Cause: ' + err.message);
2626});
2627```
2628
2629### setUnifiedDataSync<sup>12+</sup>
2630
2631setUnifiedDataSync(data: unifiedDataChannel.UnifiedData): void
2632
2633将数据写入系统剪贴板, 此接口为同步接口。
2634
2635**系统能力:** SystemCapability.MiscServices.Pasteboard
2636
2637**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2638
2639**参数:**
2640
2641| 参数名 | 类型        | 必填 | 说明             |
2642| ------ | ----------- | ---- | ---------------- |
2643| data   | [unifiedDataChannel.UnifiedData](../apis-arkdata/js-apis-data-unifiedDataChannel.md#unifieddata) | 是   | 需要写入剪贴板中的数据。 |
2644
2645**错误码:**
2646
2647以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2648
2649| 错误码ID | 错误信息 |
2650| -------- | -------- |
2651| 401      | Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2652| 12900005 | Request timed out. |
2653
2654**示例:**
2655
2656```ts
2657import { unifiedDataChannel } from '@kit.ArkData';
2658
2659let plainTextData = new unifiedDataChannel.UnifiedData();
2660let plainText = new unifiedDataChannel.PlainText();
2661plainText.details = {
2662    Key: 'delayPlaintext',
2663    Value: 'delayPlaintext',
2664};
2665plainText.textContent = 'delayTextContent';
2666plainText.abstract = 'delayTextContent';
2667plainTextData.addRecord(plainText);
2668
2669let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2670try {
2671    systemPasteboard.setUnifiedDataSync(plainTextData);
2672    console.info('Succeeded in setting UnifiedData.');
2673} catch (err) {
2674    console.error('Failed to set UnifiedData. Cause:' + err.message);
2675};
2676```
2677
2678### setAppShareOptions<sup>14+</sup>
2679
2680setAppShareOptions(shareOptions: ShareOption): void
2681
2682应用设置本应用剪贴板数据的可粘贴范围。
2683
2684**需要权限**:ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION
2685
2686**系统能力:** SystemCapability.MiscServices.Pasteboard
2687
2688**参数:**
2689
2690| 参数名 | 类型 | 必填 | 说明 |
2691| -------- | -------- | -------- | -------- |
2692| shareOptions | [ShareOption](js-apis-pasteboard.md#shareoption9) | 是 | 可粘贴的范围,参数只允许pasteboard.ShareOption.INAPP。|
2693
2694**错误码:**
2695
2696以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2697
2698| 错误码ID | 错误信息 |
2699| -------- | -------- |
2700| 201 | Permission verification failed. The application does not have the permission required to call the API. |
2701| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
2702| 12900006 | Settings already exist. |
2703
2704**示例:**
2705
2706```ts
2707import { BusinessError } from '@kit.BasicServicesKit';
2708
2709let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2710try {
2711  systemPasteboard.setAppShareOptions(pasteboard.ShareOption.INAPP);
2712  console.info('Set app share options success.');
2713} catch (err) {
2714  let error: BusinessError = err as BusinessError;
2715  console.error(`Set app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`);
2716}
2717```
2718
2719### removeAppShareOptions<sup>14+</sup>
2720
2721removeAppShareOptions(): void
2722
2723删除应用全局的可粘贴的范围。
2724
2725**需要权限**:ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION
2726
2727**系统能力:** SystemCapability.MiscServices.Pasteboard
2728
2729**错误码:**
2730
2731以下错误码的详细介绍请参见[剪贴板错误码](errorcode-pasteboard.md)。
2732
2733| 错误码ID | 错误信息 |
2734| -------- | -------- |
2735| 201 | Permission verification failed. The application does not have the permission required to call the API. |
2736
2737**示例:**
2738
2739```ts
2740import { BusinessError } from '@kit.BasicServicesKit';
2741
2742let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2743try {
2744  systemPasteboard.removeAppShareOptions();
2745  console.info('Remove app share options success.');
2746} catch (err) {
2747  let error: BusinessError = err as BusinessError;
2748  console.error(`Remove app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`);
2749}
2750```
2751
2752### Pattern<sup>13+</sup>
2753剪贴板支持检测的模式类型。
2754
2755**系统能力:** SystemCapability.MiscServices.Pasteboard
2756
2757| 名称                               | 值  | 说明                                                                                  |
2758| ---------------------------------- | --- | ------------------------------------------------------------------------------------- |
2759| URL                              | 0   | URL类型。                                                              |
2760| NUMBER                        | 1   | 数字类型。                                                    |
2761| EMAIL_ADDRESS | 2   | 邮箱地址类型。 |
2762
2763### detectPatterns<sup>13+</sup>
2764
2765detectPatterns(patterns: Array&lt;Pattern&gt;): Promise&lt;Array&lt;Pattern&gt;&gt;
2766
2767检测**本地**剪贴板中存在的模式,使用Promise异步回调。
2768
2769**系统能力:** SystemCapability.MiscServices.Pasteboard
2770
2771**参数:**
2772
2773| 参数名 | 类型 | 必填 | 说明 |
2774| -------- | -------- | -------- | -------- |
2775| patterns | [Array&lt;Pattern&gt;](#pattern13) | 是 | 	需要在剪贴板中检测的模式。 |
2776
2777**返回值:**
2778
2779| 类型 | 说明 |
2780| -------- | -------- |
2781| Promise&lt;Array&lt;Pattern&gt;&gt; | Promise对象,返回检测到的模式 |
2782
2783**错误码:**
2784
2785以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2786
2787| 错误码ID | 错误信息 |
2788| -------- | -------- |
2789| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed. |
2790
2791**示例:**
2792
2793```ts
2794import { pasteboard } from '@kit.BasicServicesKit'
2795
2796let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2797let patterns: Array<pasteboard.Pattern> = [pasteboard.Pattern.URL, pasteboard.Pattern.EMAIL_ADDRESS];
2798
2799systemPasteboard.detectPatterns(patterns).then((data: Array<pasteboard.Pattern>) => {
2800    if (patterns.sort().join('')==data.sort().join('')) {
2801      console.info('All needed patterns detected, next get data');
2802      try {
2803        let result: pasteboard.PasteData = systemPasteboard.getDataSync();
2804        console.info('Succeeded in getting PasteData.');
2805      } catch (err) {
2806        console.error('Failed to get PasteData. Cause:' + err.message);
2807      };
2808    } else {
2809      console.info("Not all needed patterns detected, no need to get data.");
2810    }
2811});
2812```
2813
2814### getMimeTypes<sup>14+</sup>
2815
2816getMimeTypes(): Promise&lt;Array&lt;string&gt;&gt;
2817
2818读取剪贴板中存在的MIME类型,使用Promise异步回调。
2819
2820**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
2821
2822**系统能力:** SystemCapability.MiscServices.Pasteboard
2823
2824**返回值:**
2825
2826| 类型 | 说明 |
2827| -------- | -------- |
2828| Promise&lt;Array&lt;string&gt;&gt; | Promise对象,返回读取到的MIME类型 |
2829
2830**示例:**
2831
2832```ts
2833import { pasteboard, BusinessError } from '@kit.BasicServicesKit'
2834
2835let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
2836systemPasteboard.getMimeTypes().then((data: Array<String>) => {
2837    console.info('Succeeded in getting mimeTypes. mimeTypes: ' + data.sort().join(','));
2838}).catch((err: BusinessError) => {
2839    console.error('Failed to get mimeTypes. Cause:' + err.message);
2840});
2841```