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