• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.pasteboard (剪贴板)
2
3本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。系统剪贴板支持对文本、HTML、URI、Want、PixelMap等内容的操作。
4
5> **说明:**
6>
7> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```js
12import pasteboard from '@ohos.pasteboard';
13```
14
15## 常量
16
17**系统能力:** SystemCapability.MiscServices.Pasteboard
18
19| 名称 | 类型 | 值 | 说明 |
20| -------- | -------- | -------- | -------- |
21| MAX_RECORD_NUM<sup>7+</sup> | number | 512 | 单个PasteData中所能包含的最大条目数。 |
22| MIMETYPE_TEXT_HTML<sup>7+</sup> | string | 'text/html' | HTML内容的MIME类型定义。 |
23| MIMETYPE_TEXT_WANT<sup>7+</sup> | string | 'text/want' | Want内容的MIME类型定义。 |
24| MIMETYPE_TEXT_PLAIN<sup>7+</sup> | string | 'text/plain' | 纯文本内容的MIME类型定义。 |
25| MIMETYPE_TEXT_URI<sup>7+</sup> | string | 'text/uri' | URI内容的MIME类型定义。 |
26| MIMETYPE_PIXELMAP<sup>9+</sup> | string | 'pixelMap' | PixelMap内容的MIME类型定义。 |
27
28## ValueType<sup>9+</sup>
29
30用于表示允许的数据字段类型。
31
32**系统能力:** SystemCapability.MiscServices.Pasteboard
33
34| 类型 | 说明 |
35| -------- | -------- |
36| string | 表示string的类型。 |
37| image.PixelMap | 表示[image.PixelMap](js-apis-image.md#pixelmap7)的类型。 |
38| Want | 表示[Want](js-apis-app-ability-want.md)的类型。 |
39| ArrayBuffer | 表示ArrayBuffer的类型。 |
40
41## pasteboard.createData<sup>9+</sup>
42
43createData(mimeType: string, value: ValueType): PasteData
44
45构建一个自定义类型的剪贴板内容对象。
46
47**系统能力:** SystemCapability.MiscServices.Pasteboard
48
49**参数:**
50
51| 参数名 | 类型 | 必填 | 说明 |
52| -------- | -------- | -------- | -------- |
53| mimeType | string | 是 | 自定义数据的MIME类型。 |
54| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 |
55
56**返回值:**
57
58| 类型 | 说明 |
59| -------- | -------- |
60| [PasteData](#pastedata) |  剪贴板内容对象。 |
61
62**示例:**
63
64  ```js
65  let dataXml = new ArrayBuffer(256);
66let pasteData = pasteboard.createData('app/xml', dataXml);
67  ```
68
69## pasteboard.createRecord<sup>9+</sup>
70
71createRecord(mimeType: string, value: ValueType):PasteDataRecord;
72
73创建一条自定义数据内容条目。
74
75**系统能力:** SystemCapability.MiscServices.Pasteboard
76
77**参数:**
78
79| 参数名 | 类型 | 必填 | 说明 |
80| -------- | -------- | -------- | -------- |
81| mimeType | string | 是 | 自定义数据的MIME类型。 |
82| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 |
83
84**返回值:**
85
86| 类型 | 说明 |
87| -------- | -------- |
88| [PasteDataRecord](#pastedatarecord7) | 一条新建的自定义数据内容条目。 |
89
90**示例:**
91
92  ```js
93let dataXml = new ArrayBuffer(256);
94let pasteDataRecord = pasteboard.createRecord('app/xml', dataXml);
95  ```
96
97## pasteboard.getSystemPasteboard
98
99getSystemPasteboard(): SystemPasteboard
100
101获取系统剪贴板对象。
102
103**系统能力:** SystemCapability.MiscServices.Pasteboard
104
105**返回值:**
106
107| 类型 | 说明 |
108| -------- | -------- |
109| [SystemPasteboard](#systempasteboard) | 系统剪贴板对象。 |
110
111**示例:**
112
113```js
114let systemPasteboard = pasteboard.getSystemPasteboard();
115```
116
117## ShareOption<sup>9+</sup>
118
119可粘贴数据的范围类型枚举。
120
121**系统能力:** SystemCapability.MiscServices.Pasteboard
122
123| 名称          | 值 | 说明                |
124|-------------|---|-------------------|
125| INAPP       | 0 | 表示仅允许同应用内粘贴。      |
126| LOCALDEVICE | 1 | 表示允许在此设备中任何应用内粘贴。 |
127| CROSSDEVICE | 2 | 表示允许跨设备在任何应用内粘贴。  |
128
129## pasteboard.createHtmlData<sup>(deprecated)</sup>
130
131createHtmlData(htmlText: string): PasteData
132
133构建一个HTML剪贴板内容对象。
134> **说明:**
135>
136> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
137
138**系统能力:** SystemCapability.MiscServices.Pasteboard
139
140**参数:**
141
142| 参数名 | 类型 | 必填 | 说明 |
143| -------- | -------- | -------- | -------- |
144| htmlText | string | 是 | HTML内容。 |
145
146**返回值:**
147
148| 类型 | 说明 |
149| -------- | -------- |
150| [PasteData](#pastedata) | 剪贴板内容对象。 |
151
152**示例:**
153
154```js
155let 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>";
156let pasteData = pasteboard.createHtmlData(html);
157```
158
159## pasteboard.createWantData<sup>(deprecated)</sup>
160
161createWantData(want: Want): PasteData
162
163构建一个Want剪贴板内容对象。
164> **说明:**
165>
166> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
167
168**系统能力:** SystemCapability.MiscServices.Pasteboard
169
170**参数:**
171
172| 参数名 | 类型 | 必填 | 说明 |
173| -------- | -------- | -------- | -------- |
174| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 |
175
176**返回值:**
177
178| 类型 | 说明 |
179| -------- | -------- |
180| [PasteData](#pastedata) | 剪贴板内容对象。 |
181
182**示例:**
183
184```js
185let object = {
186    bundleName: "com.example.aafwk.test",
187    abilityName: "com.example.aafwk.test.TwoAbility"
188};
189let pasteData = pasteboard.createWantData(object);
190```
191
192## pasteboard.createPlainTextData<sup>(deprecated)</sup>
193
194createPlainTextData(text: string): PasteData
195
196构建一个纯文本剪贴板内容对象。
197> **说明:**
198>
199> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
200
201**系统能力:** SystemCapability.MiscServices.Pasteboard
202
203**参数:**
204
205| 参数名 | 类型 | 必填 | 说明 |
206| -------- | -------- | -------- | -------- |
207| text | string | 是 | 纯文本内容。 |
208
209**返回值:**
210
211| 类型 | 说明 |
212| -------- | -------- |
213| [PasteData](#pastedata) | 剪贴板内容对象。 |
214
215**示例:**
216
217```js
218let pasteData = pasteboard.createPlainTextData('content');
219```
220
221## pasteboard.createUriData<sup>(deprecated)</sup>
222
223createUriData(uri: string): PasteData
224
225构建一个URI剪贴板内容对象。
226> **说明:**
227>
228> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
229
230**系统能力:** SystemCapability.MiscServices.Pasteboard
231
232**参数:**
233
234| 参数名 | 类型 | 必填 | 说明 |
235| -------- | -------- | -------- | -------- |
236| uri | string | 是 | URI内容。 |
237
238**返回值:**
239
240| 类型 | 说明 |
241| -------- | -------- |
242| [PasteData](#pastedata) | 剪贴板内容对象。 |
243
244**示例:**
245
246```js
247let pasteData = pasteboard.createUriData('dataability:///com.example.myapplication1/user.txt');
248```
249## pasteboard.createHtmlTextRecord<sup>(deprecated)</sup>
250
251createHtmlTextRecord(htmlText: string): PasteDataRecord
252
253创建一条HTML内容的条目。
254> **说明:**
255>
256> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
257
258**系统能力:** SystemCapability.MiscServices.Pasteboard
259
260**参数:**
261
262| 参数名 | 类型 | 必填 | 说明 |
263| -------- | -------- | -------- | -------- |
264| htmlText | string | 是 | HTML内容。 |
265
266**返回值:**
267
268| 类型 | 说明 |
269| -------- | -------- |
270| [PasteDataRecord](#pastedatarecord7) | 一条新建的HTML内容条目。 |
271
272**示例:**
273
274```js
275let 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>";
276let record = pasteboard.createHtmlTextRecord(html);
277```
278
279## pasteboard.createWantRecord<sup>(deprecated)</sup>
280
281createWantRecord(want: Want): PasteDataRecord
282
283创建一条Want内容条目。
284> **说明:**
285>
286> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
287
288**系统能力:** SystemCapability.MiscServices.Pasteboard
289
290**参数:**
291
292| 参数名 | 类型 | 必填 | 说明 |
293| -------- | -------- | -------- | -------- |
294| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 |
295
296**返回值:**
297
298| 类型 | 说明 |
299| -------- | -------- |
300| [PasteDataRecord](#pastedatarecord7) | 一条新建的Want内容条目。 |
301
302**示例:**
303
304```js
305let object = {
306    bundleName: "com.example.aafwk.test",
307    abilityName: "com.example.aafwk.test.TwoAbility"
308};
309let record = pasteboard.createWantRecord(object);
310```
311
312## pasteboard.createPlainTextRecord<sup>(deprecated)</sup>
313
314createPlainTextRecord(text: string): PasteDataRecord
315
316创建一条纯文本内容条目。
317> **说明:**
318>
319> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
320
321**系统能力:** SystemCapability.MiscServices.Pasteboard
322
323**参数:**
324
325| 参数名 | 类型 | 必填 | 说明 |
326| -------- | -------- | -------- | -------- |
327| text | string | 是 | 纯文本内容。 |
328
329**返回值:**
330
331| 类型 | 说明 |
332| -------- | -------- |
333| [PasteDataRecord](#pastedatarecord7) | 一条新建的纯文本内容条目。 |
334
335**示例:**
336
337```js
338let record = pasteboard.createPlainTextRecord('hello');
339```
340
341## pasteboard.createUriRecord<sup>(deprecated)</sup>
342
343createUriRecord(uri: string): PasteDataRecord
344
345创建一条URI内容的条目。
346> **说明:**
347>
348> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
349
350**系统能力:** SystemCapability.MiscServices.Pasteboard
351
352**参数:**
353
354| 参数名 | 类型 | 必填 | 说明 |
355| -------- | -------- | -------- | -------- |
356| uri | string | 是 | URI内容。 |
357
358**返回值:**
359
360| 类型 | 说明 |
361| -------- | -------- |
362| [PasteDataRecord](#pastedatarecord7) | 一条新建的URI内容条目。 |
363
364**示例:**
365
366```js
367let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
368```
369
370
371## PasteDataProperty<sup>7+</sup>
372
373定义了剪贴板中所有内容条目的属性,包含时间戳、数据类型、粘贴范围以及一些附加数据等。
374
375**系统能力:** SystemCapability.MiscServices.Pasteboard
376
377| 名称 | 类型 | 可读 | 可写 | 说明                                                                                         |
378| -------- | -------- | -------- | -------- |--------------------------------------------------------------------------------------------|
379| additions<sup>7+</sup> | {[key:string]:object} | 是 | 是 | 设置其他附加属性数据。                                                                               |
380| mimeTypes<sup>7+</sup> | Array&lt;string&gt; | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。                                                                     |
381| tag<sup>7+</sup> | string | 是 | 是 | 用户自定义标签。                                                                                   |
382| timestamp<sup>7+</sup> | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。                                                                        |
383| localOnly<sup>7+</sup> | boolean | 是 | 是 | 配置剪贴板内容是否为“仅在本地”,默认值为false。暂不支持,推荐使用shareOption属性。<br/>- 配置为true时,表示内容仅在本地,不会在设备之间传递。<br/>- 配置为false时,表示内容将在设备间传递。 |
384| shareOption<sup>9+</sup> | [ShareOption](#shareoption9) | 是 | 是 | 指示剪贴板数据可以粘贴到的范围,如果未设置或设置不正确,则默认值为CROSSDEVICE。                                              |
385
386## PasteDataRecord<sup>7+</sup>
387
388对于剪贴板中内容记录的抽象定义,称之为条目。剪贴板内容部分由一个或者多个条目构成,例如一条文本内容、一份HTML、一个URI或者一个Want。
389
390### 属性
391
392**系统能力:** SystemCapability.MiscServices.Pasteboard
393
394| 名称 | 类型 | 可读 | 可写 | 说明 |
395| -------- | -------- | -------- | -------- | -------- |
396| htmlText<sup>7+</sup> | string | 是 | 否 | HTML内容。 |
397| want<sup>7+</sup> | [Want](js-apis-app-ability-want.md) | 是 | 否 | Want内容。 |
398| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 |
399| plainText<sup>7+</sup> | string | 是 | 否 | 纯文本内容。 |
400| uri<sup>7+</sup> | string | 是 | 否 | URI内容。 |
401| pixelMap<sup>9+</sup> | [image.PixelMap](js-apis-image.md#pixelmap7) | 是 | 否 | PixelMap内容。 |
402| data<sup>9+</sup> | {[mimeType:&nbsp;string]:&nbsp;ArrayBuffer} | 是 | 否 | 自定义数据内容。 |
403
404### toPlainText<sup>9+</sup>
405
406toPlainText(): string
407
408将一个PasteData中的内容强制转换为文本内容。
409
410**系统能力:** SystemCapability.MiscServices.Pasteboard
411
412**返回值:**
413
414| 类型 | 说明 |
415| -------- | -------- |
416| string | 纯文本内容。 |
417
418**示例:**
419
420```js
421let record = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
422let data = record.toPlainText();
423console.info(`Succeeded in converting to text. Data: ${data}`);
424```
425
426### convertToText<sup>(deprecated)</sup>
427
428convertToText(callback: AsyncCallback&lt;string&gt;): void
429
430将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。
431> **说明:**
432>
433> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
434
435**系统能力:** SystemCapability.MiscServices.Pasteboard
436
437**参数:**
438
439| 参数名 | 类型 | 必填 | 说明 |
440| -------- | -------- | -------- | -------- |
441| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,当转换成功,err为undefined,data为强制转换的文本内容;否则返回错误信息。 |
442
443**示例:**
444
445```js
446let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
447record.convertToText((err, data) => {
448    if (err) {
449        console.error(`Failed to convert to text. Cause: ${err.message}`);
450        return;
451    }
452    console.info(`Succeeded in converting to text. Data: ${data}`);
453});
454```
455
456### convertToText<sup>(deprecated)</sup>
457
458convertToText(): Promise&lt;string&gt;
459
460将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。
461> **说明:**
462>
463> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
464
465**系统能力:** SystemCapability.MiscServices.Pasteboard
466
467**返回值:**
468
469| 类型 | 说明 |
470| -------- | -------- |
471| Promise&lt;string&gt; | Promise对象,返回强制转换的文本内容。 |
472
473**示例:**
474
475```js
476let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
477record.convertToText().then((data) => {
478    console.info(`Succeeded in converting to text. Data: ${data}`);
479}).catch((err) => {
480    console.error(`Failed to convert to text. Cause: ${err.message}`);
481});
482```
483
484## PasteData
485
486剪贴板内容对象。剪贴板内容包含一个或者多个内容条目([PasteDataRecord](#pastedatarecord7))以及属性描述对象([PasteDataProperty](#pastedataproperty7))。
487
488在调用PasteData的接口前,需要先通过[createData()](#pasteboardcreatedata9)或[getData()](#getdata9)获取一个PasteData对象。
489
490**系统能力:** SystemCapability.MiscServices.Pasteboard
491
492### getPrimaryText
493
494getPrimaryText(): string
495
496获取首个条目的纯文本内容。
497
498**系统能力:** SystemCapability.MiscServices.Pasteboard
499
500**返回值:**
501
502| 类型 | 说明 |
503| -------- | -------- |
504| string | 纯文本内容。 |
505
506**示例:**
507
508```js
509let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
510let plainText = pasteData.getPrimaryText();
511```
512
513### getPrimaryHtml<sup>7+</sup>
514
515getPrimaryHtml(): string
516
517获取首个条目的HTML内容。
518
519**系统能力:** SystemCapability.MiscServices.Pasteboard
520
521**返回值:**
522
523| 类型 | 说明 |
524| -------- | -------- |
525| string | HTML内容。 |
526
527**示例:**
528
529```js
530let 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>";
531let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, html);
532let htmlText = pasteData.getPrimaryHtml();
533```
534
535### getPrimaryWant<sup>7+</sup>
536
537getPrimaryWant(): Want
538
539获取首个条目的Want对象内容。
540
541**系统能力:** SystemCapability.MiscServices.Pasteboard
542
543**返回值:**
544
545| 类型 | 说明 |
546| -------- | -------- |
547| [Want](js-apis-app-ability-want.md) | Want对象内容。 |
548
549**示例:**
550
551```js
552let object = {
553    bundleName: "com.example.aafwk.test",
554    abilityName: "com.example.aafwk.test.TwoAbility"
555};
556let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, object);
557let want = pasteData.getPrimaryWant();
558```
559
560### getPrimaryUri<sup>7+</sup>
561
562getPrimaryUri(): string
563
564获取首个条目的URI内容。
565
566**系统能力:** SystemCapability.MiscServices.Pasteboard
567
568**返回值:**
569
570| 类型 | 说明 |
571| -------- | -------- |
572| string | URI内容。 |
573
574**示例:**
575
576```js
577let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
578let uri = pasteData.getPrimaryUri();
579```
580
581### getPrimaryPixelMap<sup>9+</sup>
582
583getPrimaryPixelMap(): image.PixelMap
584
585获取首个条目的PixelMap内容。
586
587**系统能力:** SystemCapability.MiscServices.Pasteboard
588
589**返回值:**
590
591| 类型 | 说明 |
592| -------- | -------- |
593| [image.PixelMap](js-apis-image.md#pixelmap7) | PixelMap内容。 |
594
595**示例:**
596
597```js
598import image from '@ohos.multimedia.image';
599
600let buffer = new ArrayBuffer(128);
601let opt = {
602  size: { height: 3, width: 5 },
603  pixelFormat: 3,
604  editable: true,
605  alphaType: 1,
606  scaleMode: 1
607};
608image.createPixelMap(buffer, opt).then((pixelMap) => {
609    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
610    let PixelMap = pasteData.getPrimaryPixelMap();
611});
612```
613
614### addRecord<sup>7+</sup>
615
616addRecord(record: PasteDataRecord): void
617
618向当前剪贴板内容中添加一条条目,同时也会将条目类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
619
620剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
621
622**系统能力:** SystemCapability.MiscServices.Pasteboard
623
624**参数:**
625
626| 参数名 | 类型 | 必填 | 说明 |
627| -------- | -------- | -------- | -------- |
628| record | [PasteDataRecord](#pastedatarecord7) | 是 | 待添加的条目。 |
629
630**示例:**
631
632```js
633let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
634let textRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
635let 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>";
636let htmlRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, html);
637pasteData.addRecord(textRecord);
638pasteData.addRecord(htmlRecord);
639```
640### addRecord<sup>9+</sup>
641
642addRecord(mimeType: string, value: ValueType): void
643
644向当前剪贴板内容中添加一条自定义数据内容条目,同时也会将自定义数据类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
645
646剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
647
648**系统能力:** SystemCapability.MiscServices.Pasteboard
649
650**参数:**
651
652| 参数名 | 类型 | 必填 | 说明 |
653| -------- | -------- | -------- | -------- |
654| mimeType | string | 是 | 自定义数据的MIME类型。 |
655| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 |
656
657**错误码:**
658
659以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
660
661| 错误码ID | 错误信息 |
662| -------- | -------- |
663| 12900002 | The number of record exceeds the maximum limit. |
664
665**示例:**
666
667  ```js
668  let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
669  let dataXml = new ArrayBuffer(256);
670  pasteData.addRecord('app/xml', dataXml);
671  ```
672
673### getMimeTypes<sup>7+</sup>
674
675getMimeTypes(): Array&lt;string&gt;
676
677获取剪贴板中[PasteDataProperty](#pastedataproperty7)的mimeTypes列表,当剪贴板内容为空时,返回列表为空。
678
679**系统能力:** SystemCapability.MiscServices.Pasteboard
680
681**返回值:**
682
683| 类型 | 说明 |
684| -------- | -------- |
685| Array&lt;string&gt; | 剪贴板内容条目的数据类型,非重复的类型列表。 |
686
687**示例:**
688
689```js
690let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
691let types = pasteData.getMimeTypes();
692```
693
694### getPrimaryMimeType<sup>7+</sup>
695
696getPrimaryMimeType(): string
697
698获取剪贴板内容中首个条目的数据类型。
699
700**系统能力:** SystemCapability.MiscServices.Pasteboard
701
702**返回值:**
703
704| 类型 | 说明 |
705| -------- | -------- |
706| string | 首个条目的数据类型。 |
707
708**示例:**
709
710```js
711let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
712let type = pasteData.getPrimaryMimeType();
713```
714
715### getProperty<sup>7+</sup>
716
717getProperty(): PasteDataProperty
718
719获取剪贴板内容的属性描述对象。
720
721**系统能力:** SystemCapability.MiscServices.Pasteboard
722
723**返回值:**
724
725| 类型 | 说明 |
726| -------- | -------- |
727| [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 |
728
729**示例:**
730
731```js
732let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
733let property = pasteData.getProperty();
734```
735
736### setProperty<sup>9+</sup>
737
738setProperty(property: PasteDataProperty): void
739
740设置剪贴板内容的属性描述对象,当前仅支持设置shareOption属性。
741
742**系统能力:** SystemCapability.MiscServices.Pasteboard
743
744**参数:**
745
746| 参数名 | 类型 | 必填 | 说明 |
747| -------- | -------- | -------- | -------- |
748| property | [PasteDataProperty](#pastedataproperty7) | 是 | 属性描述对象。 |
749
750**示例:**
751
752```js
753let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'application/xml');
754let prop = pasteData.getProperty();
755prop.shareOption = pasteboard.ShareOption.INAPP;
756pasteData.setProperty(prop);
757```
758
759### getRecord<sup>9+</sup>
760
761getRecord(index: number): PasteDataRecord
762
763获取剪贴板内容中指定下标的条目。
764
765**系统能力:** SystemCapability.MiscServices.Pasteboard
766
767**参数:**
768
769| 参数名 | 类型 | 必填 | 说明 |
770| -------- | -------- | -------- | -------- |
771| index | number | 是 | 指定条目的下标。 |
772
773**返回值:**
774
775| 类型 | 说明 |
776| -------- | -------- |
777| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |
778
779**错误码:**
780
781以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
782
783| 错误码ID | 错误信息 |
784| -------- | -------- |
785| 12900001 | The index is out of the record. |
786
787**示例:**
788
789```js
790let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
791let record = pasteData.getRecord(0);
792```
793
794### getRecordCount<sup>7+</sup>
795
796getRecordCount(): number
797
798获取剪贴板内容中条目的个数。
799
800**系统能力:** SystemCapability.MiscServices.Pasteboard
801
802**返回值:**
803
804| 类型 | 说明 |
805| -------- | -------- |
806| number | 条目的个数。 |
807
808**示例:**
809
810```js
811let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
812let count = pasteData.getRecordCount();
813```
814
815### getTag<sup>7+</sup>
816
817getTag(): string
818
819获取剪贴板内容中用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。
820
821**系统能力:** SystemCapability.MiscServices.Pasteboard
822
823**返回值:**
824
825| 类型 | 说明 |
826| -------- | -------- |
827| string | 返回用户自定义的标签内容,如果没有设置用户自定义的标签内容,将返回空。 |
828
829**示例:**
830
831```js
832let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
833let tag = pasteData.getTag();
834```
835
836### hasType<sup>9+</sup>
837
838hasType(mimeType: string): boolean
839
840检查剪贴板内容中是否有指定的MIME数据类型。
841
842**系统能力:** SystemCapability.MiscServices.Pasteboard
843
844**参数:**
845
846| 参数名 | 类型 | 必填 | 说明 |
847| -------- | -------- | -------- | -------- |
848| mimeType | string | 是 | 待查询的数据类型。 |
849
850**返回值:**
851
852| 类型 | 说明 |
853| -------- | -------- |
854| boolean | 有指定的数据类型返回true,否则返回false。 |
855
856**示例:**
857
858```js
859let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
860let hasType = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN);
861```
862
863### removeRecord<sup>9+</sup>
864
865removeRecord(index: number): void
866
867移除剪贴板内容中指定下标的条目。
868
869**系统能力:** SystemCapability.MiscServices.Pasteboard
870
871**参数:**
872
873| 参数名 | 类型 | 必填 | 说明 |
874| -------- | -------- | -------- | -------- |
875| index | number | 是 | 指定的下标。 |
876
877**错误码:**
878
879以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
880
881| 错误码ID | 错误信息 |
882| -------- | -------- |
883| 12900001 | The index is out of the record. |
884
885**示例:**
886
887```js
888let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
889pasteData.removeRecord(0);
890```
891
892### replaceRecord<sup>9+</sup>
893
894replaceRecord(index: number, record: PasteDataRecord): void
895
896替换剪贴板内容中指定下标的条目。
897
898**系统能力:** SystemCapability.MiscServices.Pasteboard
899
900**参数:**
901
902| 参数名 | 类型 | 必填 | 说明 |
903| -------- | -------- | -------- | -------- |
904| index | number | 是 | 指定的下标。 |
905| record | [PasteDataRecord](#pastedatarecord7) | 是 | 新条目的内容。 |
906
907**错误码:**
908
909以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
910
911| 错误码ID | 错误信息 |
912| -------- | -------- |
913| 12900001 | The index is out of the record. |
914
915**示例:**
916
917```js
918let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
919let record = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
920pasteData.replaceRecord(0, record);
921```
922### addHtmlRecord<sup>(deprecated)</sup>
923
924addHtmlRecord(htmlText: string): void
925
926向当前剪贴板内容中添加一条HTML内容条目,并将MIMETYPE_TEXT_HTML添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
927
928剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
929> **说明:**
930>
931> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
932
933**系统能力:** SystemCapability.MiscServices.Pasteboard
934
935**参数:**
936
937| 参数名 | 类型 | 必填 | 说明 |
938| -------- | -------- | -------- | -------- |
939| htmlText | string | 是 | HTML内容。 |
940
941**示例:**
942
943```js
944let pasteData = pasteboard.createPlainTextData('hello');
945let 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>";
946pasteData.addHtmlRecord(html);
947```
948
949### addWantRecord<sup>(deprecated)</sup>
950
951addWantRecord(want: Want): void
952
953向当前剪贴板内容中添加一条Want条目,并将MIMETYPE_TEXT_WANT添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
954
955剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
956> **说明:**
957>
958> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
959
960**系统能力:** SystemCapability.MiscServices.Pasteboard
961
962**参数:**
963
964| 参数名 | 类型 | 必填 | 说明 |
965| -------- | -------- | -------- | -------- |
966| want | [Want](js-apis-app-ability-want.md) | 是 | Want对象内容。 |
967
968**示例:**
969
970```js
971let pasteData = pasteboard.createPlainTextData('hello');
972let object = {
973    bundleName: "com.example.aafwk.test",
974    abilityName: "com.example.aafwk.test.TwoAbility"
975};
976pasteData.addWantRecord(object);
977```
978
979### addTextRecord<sup>(deprecated)</sup>
980
981addTextRecord(text: string): void
982
983向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
984
985剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
986> **说明:**
987>
988> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
989
990**系统能力:** SystemCapability.MiscServices.Pasteboard
991
992**参数:**
993
994| 参数名 | 类型 | 必填 | 说明 |
995| -------- | -------- | -------- | -------- |
996| text | string | 是 | 纯文本内容。 |
997
998**示例:**
999
1000```js
1001let pasteData = pasteboard.createPlainTextData('hello');
1002pasteData.addTextRecord('good');
1003```
1004
1005### addUriRecord<sup>(deprecated)</sup>
1006
1007addUriRecord(uri: string): void
1008
1009向当前剪贴板内容中添加一条URI条目,并将MIMETYPE_TEXT_URI添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
1010
1011剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
1012> **说明:**
1013>
1014> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1015
1016**系统能力:** SystemCapability.MiscServices.Pasteboard
1017
1018**参数:**
1019
1020| 参数名 | 类型 | 必填 | 说明 |
1021| -------- | -------- | -------- | -------- |
1022| uri | string | 是 | URI内容。 |
1023
1024**示例:**
1025
1026```js
1027let pasteData = pasteboard.createPlainTextData('hello');
1028pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt');
1029```
1030### getRecordAt<sup>(deprecated)</sup>
1031
1032getRecordAt(index: number): PasteDataRecord
1033
1034获取剪贴板内容中指定下标的条目。
1035> **说明:**
1036>
1037> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[getRecord](#getrecord9)替代。
1038
1039**系统能力:** SystemCapability.MiscServices.Pasteboard
1040
1041**参数:**
1042
1043| 参数名 | 类型 | 必填 | 说明 |
1044| -------- | -------- | -------- | -------- |
1045| index | number | 是 | 指定条目的下标。 |
1046
1047**返回值:**
1048
1049| 类型 | 说明 |
1050| -------- | -------- |
1051| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |
1052
1053**示例:**
1054
1055```js
1056let pasteData = pasteboard.createPlainTextData('hello');
1057let record = pasteData.getRecordAt(0);
1058```
1059
1060### hasMimeType<sup>(deprecated)</sup>
1061
1062hasMimeType(mimeType: string): boolean
1063
1064检查剪贴板内容中是否有指定的数据类型。
1065> **说明:**
1066>
1067> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasType](#hastype9)替代。
1068
1069**系统能力:** SystemCapability.MiscServices.Pasteboard
1070
1071**参数:**
1072
1073| 参数名 | 类型 | 必填 | 说明 |
1074| -------- | -------- | -------- | -------- |
1075| mimeType | string | 是 | 待查询的数据类型。 |
1076
1077**返回值:**
1078
1079| 类型 | 说明 |
1080| -------- | -------- |
1081| boolean | 有指定的数据类型返回true,否则返回false。 |
1082
1083**示例:**
1084
1085```js
1086let pasteData = pasteboard.createPlainTextData('hello');
1087let hasType = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);
1088```
1089### removeRecordAt<sup>(deprecated)</sup>
1090
1091removeRecordAt(index: number): boolean
1092
1093移除剪贴板内容中指定下标的条目。
1094> **说明:**
1095>
1096> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[removeRecord](#removerecord9)替代。
1097
1098**系统能力:** SystemCapability.MiscServices.Pasteboard
1099
1100**参数:**
1101
1102| 参数名 | 类型 | 必填 | 说明 |
1103| -------- | -------- | -------- | -------- |
1104| index | number | 是 | 指定的下标。 |
1105
1106**返回值:**
1107
1108| 类型 | 说明 |
1109| -------- | -------- |
1110| boolean | 成功移除返回true,失败返回false。 |
1111
1112**示例:**
1113
1114```js
1115let pasteData = pasteboard.createPlainTextData('hello');
1116let isRemove = pasteData.removeRecordAt(0);
1117```
1118### replaceRecordAt<sup>(deprecated)</sup>
1119
1120replaceRecordAt(index: number, record: PasteDataRecord): boolean
1121
1122替换剪贴板内容中指定下标的条目。
1123> **说明:**
1124>
1125> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[replaceRecord](#replacerecord9)替代。
1126
1127**系统能力:** SystemCapability.MiscServices.Pasteboard
1128
1129**参数:**
1130
1131| 参数名 | 类型 | 必填 | 说明 |
1132| -------- | -------- | -------- | -------- |
1133| index | number | 是 | 指定的下标。 |
1134| record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 |
1135
1136**返回值:**
1137
1138| 类型 | 说明 |
1139| -------- | -------- |
1140| boolean | 成功替换返回true,失败返回false。 |
1141
1142**示例:**
1143
1144```js
1145let pasteData = pasteboard.createPlainTextData('hello');
1146let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
1147let isReplace = pasteData.replaceRecordAt(0, record);
1148```
1149
1150## SystemPasteboard
1151
1152系统剪贴板对象。
1153
1154在调用SystemPasteboard的接口前,需要先通过[getSystemPasteboard](#pasteboardgetsystempasteboard)获取系统剪贴板。
1155
1156```js
1157let systemPasteboard = pasteboard.getSystemPasteboard();
1158```
1159
1160### on('update')<sup>7+</sup>
1161
1162on(type:  'update', callback: () =&gt;void ): void
1163
1164订阅系统剪贴板内容变化事件,当系统剪贴板中内容变化时触发用户程序的回调。
1165
1166**系统能力:** SystemCapability.MiscServices.Pasteboard
1167
1168**参数:**
1169
1170| 参数名 | 类型 | 必填 | 说明 |
1171| -------- | -------- | -------- | -------- |
1172| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 |
1173| callback | function | 是 | 剪贴板中内容变化时触发的用户程序的回调。 |
1174
1175**示例:**
1176
1177```js
1178let systemPasteboard = pasteboard.getSystemPasteboard();
1179let listener = () => {
1180    console.info('The system pasteboard has changed.');
1181};
1182systemPasteboard.on('update', listener);
1183```
1184
1185### off('update')<sup>7+</sup>
1186
1187off(type:  'update', callback?: () =&gt;void ): void
1188
1189取消订阅系统剪贴板内容变化事件。
1190
1191**系统能力:** SystemCapability.MiscServices.Pasteboard
1192
1193**参数:**
1194
1195| 参数名 | 类型 | 必填 | 说明                                                      |
1196| -------- | -------- | -------- |---------------------------------------------------------|
1197| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。                              |
1198| callback | function | 否 | 剪贴板中内容变化时触发的用户程序的回调。如果此参数未填,表明清除本应用的所有监听回调,否则表示清除指定监听回调。|
1199
1200**示例:**
1201
1202```js
1203let systemPasteboard = pasteboard.getSystemPasteboard();
1204let listener = () => {
1205    console.info('The system pasteboard has changed.');
1206};
1207systemPasteboard.off('update', listener);
1208```
1209
1210### clearData<sup>9+</sup>
1211
1212clearData(callback: AsyncCallback&lt;void&gt;): void
1213
1214清空系统剪贴板内容,使用callback异步回调。
1215
1216**系统能力:** SystemCapability.MiscServices.Pasteboard
1217
1218**参数:**
1219
1220| 参数名 | 类型 | 必填 | 说明 |
1221| -------- | -------- | -------- | -------- |
1222| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |
1223
1224**示例:**
1225
1226```js
1227let systemPasteboard = pasteboard.getSystemPasteboard();
1228systemPasteboard.clearData((err, data) => {
1229    if (err) {
1230        console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
1231        return;
1232    }
1233    console.info('Succeeded in clearing the pasteboard.');
1234});
1235```
1236
1237### clearData<sup>9+</sup>
1238
1239clearData(): Promise&lt;void&gt;
1240
1241清空系统剪贴板内容,使用Promise异步回调。
1242
1243**系统能力:** SystemCapability.MiscServices.Pasteboard
1244
1245**返回值:**
1246
1247| 类型 | 说明 |
1248| -------- | -------- |
1249| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1250
1251**示例:**
1252
1253```js
1254let systemPasteboard = pasteboard.getSystemPasteboard();
1255systemPasteboard.clearData().then((data) => {
1256    console.info('Succeeded in clearing the pasteboard.');
1257}).catch((err) => {
1258    console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
1259});
1260```
1261
1262### setData<sup>9+</sup>
1263
1264setData(data: PasteData, callback: AsyncCallback&lt;void&gt;): void
1265
1266将数据写入系统剪贴板,使用callback异步回调。
1267
1268**系统能力:** SystemCapability.MiscServices.Pasteboard
1269
1270**参数:**
1271
1272| 参数名 | 类型 | 必填 | 说明 |
1273| -------- | -------- | -------- | -------- |
1274| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1275| callback | AsyncCallback&lt;void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |
1276
1277**错误码:**
1278
1279以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
1280
1281| 错误码ID | 错误信息 |
1282| -------- | -------- |
1283| 12900003 | Another copy or paste is in progress. |
1284| 12900004 | Replication is prohibited. |
1285
1286**示例:**
1287
1288```js
1289let pasteData = pasteboard.createPlainTextData('content');
1290let systemPasteboard = pasteboard.getSystemPasteboard();
1291systemPasteboard.setData(pasteData, (err, data) => {
1292    if (err) {
1293        console.error('Failed to set PasteData. Cause: ' + err.message);
1294        return;
1295    }
1296    console.info('Succeeded in setting PasteData.');
1297});
1298```
1299
1300### setData<sup>9+</sup>
1301
1302setData(data: PasteData): Promise&lt;void&gt;
1303
1304将数据写入系统剪贴板,使用Promise异步回调。
1305
1306**系统能力:** SystemCapability.MiscServices.Pasteboard
1307
1308**参数:**
1309
1310| 参数名 | 类型 | 必填 | 说明 |
1311| -------- | -------- | -------- | -------- |
1312| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1313
1314**返回值:**
1315
1316| 类型 | 说明 |
1317| -------- | -------- |
1318| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1319
1320**错误码:**
1321
1322以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
1323
1324| 错误码ID | 错误信息 |
1325| -------- | -------- |
1326| 12900003 | Another copy or paste is in progress. |
1327| 12900004 | Replication is prohibited. |
1328
1329**示例:**
1330
1331```js
1332let pasteData = pasteboard.createPlainTextData('content');
1333let systemPasteboard = pasteboard.getSystemPasteboard();
1334systemPasteboard.setData(pasteData).then((data) => {
1335    console.info('Succeeded in setting PasteData.');
1336}).catch((err) => {
1337    console.error('Failed to set PasteData. Cause: ' + err.message);
1338});
1339```
1340
1341### getData<sup>9+</sup>
1342
1343getData( callback: AsyncCallback&lt;PasteData&gt;): void
1344
1345读取系统剪贴板内容,使用callback异步回调。
1346
1347**系统能力:** SystemCapability.MiscServices.Pasteboard
1348
1349**参数:**
1350
1351| 参数名 | 类型 | 必填 | 说明 |
1352| -------- | -------- | -------- | -------- |
1353| callback | AsyncCallback&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 |
1354
1355**错误码:**
1356
1357以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
1358
1359| 错误码ID | 错误信息 |
1360| -------- | -------- |
1361| 12900003 | Another copy or paste is in progress. |
1362
1363**示例:**
1364
1365```js
1366let systemPasteboard = pasteboard.getSystemPasteboard();
1367systemPasteboard.getData((err, pasteData) => {
1368    if (err) {
1369        console.error('Failed to get PasteData. Cause: ' + err.message);
1370        return;
1371    }
1372    let text = pasteData.getPrimaryText();
1373});
1374```
1375
1376### getData<sup>9+</sup>
1377
1378getData(): Promise&lt;PasteData&gt;
1379
1380读取系统剪贴板内容,使用Promise异步回调。
1381
1382**系统能力:** SystemCapability.MiscServices.Pasteboard
1383
1384**返回值:**
1385
1386| 类型 | 说明 |
1387| -------- | -------- |
1388| Promise&lt;[PasteData](#pastedata)&gt; | Promise对象,返回系统剪贴板数据。 |
1389
1390**错误码:**
1391
1392以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)。
1393
1394| 错误码ID | 错误信息 |
1395| -------- | -------- |
1396| 12900003 | Another copy or paste is in progress. |
1397
1398**示例:**
1399
1400```js
1401let systemPasteboard = pasteboard.getSystemPasteboard();
1402systemPasteboard.getData().then((pasteData) => {
1403    let text = pasteData.getPrimaryText();
1404}).catch((err) => {
1405    console.error('Failed to get PasteData. Cause: ' + err.message);
1406})
1407```
1408
1409### hasData<sup>9+</sup>
1410
1411hasData(callback:  AsyncCallback&lt;boolean&gt;): void
1412
1413判断系统剪贴板中是否有内容,使用callback异步回调。
1414
1415**系统能力:** SystemCapability.MiscServices.Pasteboard
1416
1417**参数:**
1418
1419| 参数名 | 类型 | 必填 | 说明 |
1420| -------- | -------- | -------- | -------- |
1421| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
1422
1423**示例:**
1424
1425```js
1426let systemPasteboard = pasteboard.getSystemPasteboard();
1427systemPasteboard.hasData((err, data) => {
1428    if (err) {
1429        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1430        return;
1431    }
1432    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1433});
1434```
1435
1436### hasData<sup>9+</sup>
1437
1438hasData(): Promise&lt;boolean&gt;
1439
1440判断系统剪贴板中是否有内容,使用Promise异步回调。
1441
1442**系统能力:** SystemCapability.MiscServices.Pasteboard
1443
1444**返回值:**
1445
1446| 类型 | 说明 |
1447| -------- | -------- |
1448| Promise&lt;boolean&gt; | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
1449
1450**示例:**
1451
1452```js
1453let systemPasteboard = pasteboard.getSystemPasteboard();
1454systemPasteboard.hasData().then((data) => {
1455    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1456}).catch((err) => {
1457    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1458});
1459```
1460
1461### clear<sup>(deprecated)</sup>
1462
1463clear(callback: AsyncCallback&lt;void&gt;): void
1464
1465清空系统剪贴板内容,使用callback异步回调。
1466> **说明:**
1467>
1468> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9)替代。
1469
1470**系统能力:** SystemCapability.MiscServices.Pasteboard
1471
1472**参数:**
1473
1474| 参数名 | 类型 | 必填 | 说明 |
1475| -------- | -------- | -------- | -------- |
1476| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |
1477
1478**示例:**
1479
1480```js
1481systemPasteboard.clear((err, data) => {
1482    if (err) {
1483        console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
1484        return;
1485    }
1486    console.info('Succeeded in clearing the PasteData.');
1487});
1488```
1489
1490### clear<sup>(deprecated)</sup>
1491
1492clear(): Promise&lt;void&gt;
1493
1494清空系统剪贴板内容,使用Promise异步回调。
1495> **说明:**
1496>
1497> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9-1)替代。
1498
1499**系统能力:** SystemCapability.MiscServices.Pasteboard
1500
1501**返回值:**
1502
1503| 类型 | 说明 |
1504| -------- | -------- |
1505| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1506
1507**示例:**
1508
1509```js
1510systemPasteboard.clear().then((data) => {
1511    console.info('Succeeded in clearing the PasteData.');
1512}).catch((err) => {
1513    console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
1514});
1515```
1516
1517### getPasteData<sup>(deprecated)</sup>
1518
1519getPasteData( callback: AsyncCallback&lt;PasteData&gt;): void
1520
1521读取系统剪贴板内容,使用callback异步回调。
1522> **说明:**
1523>
1524> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9)替代。
1525
1526**系统能力:** SystemCapability.MiscServices.Pasteboard
1527
1528**参数:**
1529
1530| 参数名 | 类型 | 必填 | 说明 |
1531| -------- | -------- | -------- | -------- |
1532| callback | AsyncCallback&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 |
1533
1534**示例:**
1535
1536```js
1537let systemPasteboard = pasteboard.getSystemPasteboard();
1538systemPasteboard.getPasteData((err, pasteData) => {
1539    if (err) {
1540        console.error('Failed to get PasteData. Cause: ' + err.message);
1541        return;
1542    }
1543    let text = pasteData.getPrimaryText();
1544});
1545```
1546
1547### getPasteData<sup>(deprecated)</sup>
1548
1549getPasteData(): Promise&lt;PasteData&gt;
1550
1551读取系统剪贴板内容,使用Promise异步回调。
1552> **说明:**
1553>
1554> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9-1)替代。
1555
1556**系统能力:** SystemCapability.MiscServices.Pasteboard
1557
1558**返回值:**
1559
1560| 类型 | 说明 |
1561| -------- | -------- |
1562| Promise&lt;[PasteData](#pastedata)&gt; | Promise对象,返回系统剪贴板数据。 |
1563
1564**示例:**
1565
1566```js
1567let systemPasteboard = pasteboard.getSystemPasteboard();
1568systemPasteboard.getPasteData().then((pasteData) => {
1569    let text = pasteData.getPrimaryText();
1570}).catch((err) => {
1571    console.error('Failed to get PasteData. Cause: ' + err.message);
1572})
1573```
1574
1575### hasPasteData<sup>(deprecated)</sup>
1576
1577hasPasteData(callback:  AsyncCallback&lt;boolean&gt;): void
1578
1579判断系统剪贴板中是否有内容,使用callback异步回调。
1580> **说明:**
1581>
1582> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9)替代。
1583
1584**系统能力:** SystemCapability.MiscServices.Pasteboard
1585
1586**参数:**
1587
1588| 参数名 | 类型 | 必填 | 说明 |
1589| -------- | -------- | -------- | -------- |
1590| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
1591
1592**示例:**
1593
1594```js
1595systemPasteboard.hasPasteData((err, data) => {
1596    if (err) {
1597        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1598        return;
1599    }
1600    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1601});
1602```
1603
1604### hasPasteData<sup>(deprecated)</sup>
1605
1606hasPasteData(): Promise&lt;boolean&gt;
1607
1608判断系统剪贴板中是否有内容,使用Promise异步回调。
1609> **说明:**
1610>
1611> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9-1)替代。
1612
1613**系统能力:** SystemCapability.MiscServices.Pasteboard
1614
1615**返回值:**
1616
1617| 类型 | 说明 |
1618| -------- | -------- |
1619| Promise&lt;boolean&gt; | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |
1620
1621**示例:**
1622
1623```js
1624systemPasteboard.hasPasteData().then((data) => {
1625    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1626}).catch((err) => {
1627    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1628});
1629```
1630
1631### setPasteData<sup>(deprecated)</sup>
1632
1633setPasteData(data: PasteData, callback: AsyncCallback&lt;void&gt;): void
1634
1635将数据写入系统剪贴板,使用callback异步回调。
1636> **说明:**
1637>
1638> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9)替代。
1639
1640**系统能力:** SystemCapability.MiscServices.Pasteboard
1641
1642**参数:**
1643
1644| 参数名 | 类型 | 必填 | 说明 |
1645| -------- | -------- | -------- | -------- |
1646| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1647| callback | AsyncCallback&lt;void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |
1648
1649**示例:**
1650
1651```js
1652let pasteData = pasteboard.createPlainTextData('content');
1653let systemPasteboard = pasteboard.getSystemPasteboard();
1654systemPasteboard.setPasteData(pasteData, (err, data) => {
1655    if (err) {
1656        console.error('Failed to set PasteData. Cause: ' + err.message);
1657        return;
1658    }
1659    console.info('Succeeded in setting PasteData.');
1660});
1661```
1662### setPasteData<sup>(deprecated)</sup>
1663
1664setPasteData(data: PasteData): Promise&lt;void&gt;
1665
1666将数据写入系统剪贴板,使用Promise异步回调。
1667> **说明:**
1668>
1669> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9-1)替代。
1670
1671**系统能力:** SystemCapability.MiscServices.Pasteboard
1672
1673**参数:**
1674
1675| 参数名 | 类型 | 必填 | 说明 |
1676| -------- | -------- | -------- | -------- |
1677| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1678
1679**返回值:**
1680
1681| 类型 | 说明 |
1682| -------- | -------- |
1683| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1684
1685**示例:**
1686
1687```js
1688let pasteData = pasteboard.createPlainTextData('content');
1689let systemPasteboard = pasteboard.getSystemPasteboard();
1690systemPasteboard.setPasteData(pasteData).then((data) => {
1691    console.info('Succeeded in setting PasteData.');
1692}).catch((err) => {
1693    console.error('Failed to set PasteData. Cause: ' + err.message);
1694});
1695```