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