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