js-apis-pasteboard.md 57.0 KB
Newer Older
1
# @ohos.pasteboard (剪贴板)
Z
zengyawen 已提交
2

3
本模块主要提供管理系统剪贴板的能力,为系统复制、粘贴功能提供支持。系统剪贴板支持对文本、HTML、URI、Want、PixelMap等内容的操作。
Z
zengyawen 已提交
4

5
> **说明:**
Z
zzs110 已提交
6
>
Z
zengyawen 已提交
7 8 9 10
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

L
linxinyu 已提交
11
```ts
Z
zengyawen 已提交
12 13 14
import pasteboard from '@ohos.pasteboard';
```

15
## 常量
Z
zengyawen 已提交
16

17
**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
18

Z
zzs110 已提交
19 20 21 22 23 24 25 26
| 名称 | 类型 | 值            | 说明                                                                                                                                        |
| -------- | -------- |--------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| MAX_RECORD_NUM<sup>7+</sup> | number | -            | API version 10之前,此常量值为512,表示单个PasteData中所能包含的最大条目数为512。当剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。<br>从API version 10开始,不再限制单个PasteData中所能包含的最大条目数。 |
| MIMETYPE_TEXT_HTML<sup>7+</sup> | string | 'text/html'  | HTML内容的MIME类型定义。                                                                                                                          |
| MIMETYPE_TEXT_WANT<sup>7+</sup> | string | 'text/want'  | Want内容的MIME类型定义。                                                                                                                          |
| MIMETYPE_TEXT_PLAIN<sup>7+</sup> | string | 'text/plain' | 纯文本内容的MIME类型定义。                                                                                                                           |
| MIMETYPE_TEXT_URI<sup>7+</sup> | string | 'text/uri'   | URI内容的MIME类型定义。                                                                                                                           |
| MIMETYPE_PIXELMAP<sup>9+</sup> | string | 'pixelMap'   | PixelMap内容的MIME类型定义。                                                                                                                      |
Z
zengyawen 已提交
27

28
## ValueType<sup>9+</sup>
29 30 31

用于表示允许的数据字段类型。

Z
zzs110 已提交
32
**系统能力:** SystemCapability.MiscServices.Pasteboard
33 34 35

| 类型 | 说明 |
| -------- | -------- |
36
| string | 表示string的类型。 |
37
| image.PixelMap | 表示[image.PixelMap](js-apis-image.md#pixelmap7)的类型。 |
Z
zhongjianfei 已提交
38
| Want | 表示[Want](js-apis-app-ability-want.md)的类型。 |
39
| ArrayBuffer | 表示ArrayBuffer的类型。 |
Z
zengyawen 已提交
40

41
## pasteboard.createData<sup>9+</sup>
Z
zengyawen 已提交
42

43
createData(mimeType: string, value: ValueType): PasteData
Z
zengyawen 已提交
44

45
构建一个自定义类型的剪贴板内容对象。
Z
zengyawen 已提交
46

47 48 49
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
50

Z
zzs110 已提交
51 52 53 54
| 参数名 | 类型 | 必填 | 说明                                                                                                     |
| -------- | -------- | -------- |--------------------------------------------------------------------------------------------------------|
| mimeType | string | 是 | 剪贴板数据对应的MIME类型,可以是[常量](#常量)中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值。 |
| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。                                                                                               |
55 56

**返回值:**
Z
zengyawen 已提交
57

Z
zengyawen 已提交
58 59
| 类型 | 说明 |
| -------- | -------- |
60
| [PasteData](#pastedata) |  剪贴板内容对象。 |
Z
zengyawen 已提交
61

Z
zzs110 已提交
62
**示例1:**
Z
zengyawen 已提交
63

L
linxinyu 已提交
64
  ```ts
65
  let dataXml = new ArrayBuffer(256);
L
linxinyu 已提交
66
  let pasteData: pasteboard.PasteData = pasteboard.createData('app/xml', dataXml);
Z
zzs110 已提交
67 68 69 70
  ```

**示例2:**

L
linxinyu 已提交
71
  ```ts
Z
zzs110 已提交
72
 let dataText = 'hello';
L
linxinyu 已提交
73
 let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, dataText);
74
  ```
Z
zengyawen 已提交
75

Z
zzs110 已提交
76

77
## pasteboard.createRecord<sup>9+</sup>
Z
zengyawen 已提交
78

79
createRecord(mimeType: string, value: ValueType):PasteDataRecord;
Z
zengyawen 已提交
80

81
创建一条自定义数据内容条目。
Z
zengyawen 已提交
82

83 84 85
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
86

Z
zzs110 已提交
87 88
| 参数名 | 类型 | 必填 | 说明                |
| -------- | -------- | -------- |-------------------|
Z
zzs110 已提交
89
| mimeType | string | 是 | 剪贴板数据对应的MIME类型,可以是[常量](#常量)中已定义的类型,包括HTML类型,WANT类型,纯文本类型,URI类型,PIXELMAP类型;也可以是自定义的MIME类型,开发者可自定义此参数值。  |
Z
zzs110 已提交
90
| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。          |
91 92

**返回值:**
Z
zengyawen 已提交
93

Z
zengyawen 已提交
94 95
| 类型 | 说明 |
| -------- | -------- |
96 97
| [PasteDataRecord](#pastedatarecord7) | 一条新建的自定义数据内容条目。 |

Z
zzs110 已提交
98
**示例1:**
99

L
linxinyu 已提交
100
  ```ts
Z
zzs110 已提交
101
let dataXml = new ArrayBuffer(256);
L
linxinyu 已提交
102
let pasteDataRecord: pasteboard.PasteDataRecord = pasteboard.createRecord('app/xml', dataXml);
103 104
  ```

Z
zzs110 已提交
105 106
**示例2:**

L
linxinyu 已提交
107
  ```ts
Z
zzs110 已提交
108
let dataUri = 'dataability:///com.example.myapplication1/user.txt';
L
linxinyu 已提交
109
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, dataUri);
Z
zzs110 已提交
110 111
  ```

112 113 114 115 116 117 118 119 120 121 122 123 124
## pasteboard.getSystemPasteboard

getSystemPasteboard(): SystemPasteboard

获取系统剪贴板对象。

**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| [SystemPasteboard](#systempasteboard) | 系统剪贴板对象。 |
Z
zengyawen 已提交
125

126
**示例:**
Z
zengyawen 已提交
127

L
linxinyu 已提交
128 129
```ts
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
130
```
Z
zengyawen 已提交
131

132
## ShareOption<sup>9+</sup>
Z
zengyawen 已提交
133

134
可粘贴数据的范围类型枚举。
Z
zengyawen 已提交
135

136
**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
137

Z
zzs110 已提交
138 139 140 141 142
| 名称          | 值 | 说明                |
|-------------|---|-------------------|
| INAPP       | 0 | 表示仅允许同应用内粘贴。      |
| LOCALDEVICE | 1 | 表示允许在此设备中任何应用内粘贴。 |
| CROSSDEVICE | 2 | 表示允许跨设备在任何应用内粘贴。  |
143 144 145 146 147 148

## pasteboard.createHtmlData<sup>(deprecated)</sup>

createHtmlData(htmlText: string): PasteData

构建一个HTML剪贴板内容对象。
149 150
> **说明:**
>
151
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
152 153

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
154

155
**参数:**
Z
zengyawen 已提交
156

Z
zengyawen 已提交
157 158
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
159
| htmlText | string | 是 | HTML内容。 |
160 161

**返回值:**
Z
zengyawen 已提交
162

Z
zengyawen 已提交
163 164
| 类型 | 说明 |
| -------- | -------- |
165
| [PasteData](#pastedata) | 剪贴板内容对象。 |
Z
zengyawen 已提交
166

167
**示例:**
Z
zengyawen 已提交
168

L
linxinyu 已提交
169
```ts
170
let 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>";
L
linxinyu 已提交
171
let pasteData: pasteboard.PasteData = pasteboard.createHtmlData(html);
172
```
Z
zengyawen 已提交
173

174
## pasteboard.createWantData<sup>(deprecated)</sup>
Z
zengyawen 已提交
175

176
createWantData(want: Want): PasteData
Z
zengyawen 已提交
177

178
构建一个Want剪贴板内容对象。
179 180
> **说明:**
>
181
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
Z
zengyawen 已提交
182

183 184 185
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
186

Z
zengyawen 已提交
187 188
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Z
zhongjianfei 已提交
189
| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 |
190 191

**返回值:**
Z
zengyawen 已提交
192

Z
zengyawen 已提交
193 194
| 类型 | 说明 |
| -------- | -------- |
195
| [PasteData](#pastedata) | 剪贴板内容对象。 |
Z
zengyawen 已提交
196

197
**示例:**
Z
zengyawen 已提交
198

L
linxinyu 已提交
199 200 201 202
```ts
import Want from '@ohos.app.ability.Want';

let object: Want = {
203 204 205
    bundleName: "com.example.aafwk.test",
    abilityName: "com.example.aafwk.test.TwoAbility"
};
L
linxinyu 已提交
206
let pasteData: pasteboard.PasteData = pasteboard.createWantData(object);
207
```
Z
zengyawen 已提交
208

209
## pasteboard.createPlainTextData<sup>(deprecated)</sup>
210

211
createPlainTextData(text: string): PasteData
212

213 214 215 216
构建一个纯文本剪贴板内容对象。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
217 218 219 220 221 222 223

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
224
| text | string | 是 | 纯文本内容。 |
225 226 227 228 229

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
230
| [PasteData](#pastedata) | 剪贴板内容对象。 |
231 232 233

**示例:**

L
linxinyu 已提交
234 235
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
236
```
237

238
## pasteboard.createUriData<sup>(deprecated)</sup>
Z
zengyawen 已提交
239

240
createUriData(uri: string): PasteData
Z
zengyawen 已提交
241

242
构建一个URI剪贴板内容对象。
243 244
> **说明:**
>
245
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
246 247

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
248

249
**参数:**
Z
zengyawen 已提交
250

Z
zengyawen 已提交
251 252
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
253
| uri | string | 是 | URI内容。 |
Z
zengyawen 已提交
254

255 256
**返回值:**

Z
zengyawen 已提交
257 258
| 类型 | 说明 |
| -------- | -------- |
259
| [PasteData](#pastedata) | 剪贴板内容对象。 |
Z
zengyawen 已提交
260

261
**示例:**
Z
zengyawen 已提交
262

L
linxinyu 已提交
263 264
```ts
let pasteData: pasteboard.PasteData = pasteboard.createUriData('dataability:///com.example.myapplication1/user.txt');
265
```
266
## pasteboard.createHtmlTextRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
267

268
createHtmlTextRecord(htmlText: string): PasteDataRecord
Z
zengyawen 已提交
269 270

创建一条HTML内容的条目。
271 272
> **说明:**
>
273
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
Z
zengyawen 已提交
274

275 276 277
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
278

Z
zengyawen 已提交
279 280
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
281
| htmlText | string | 是 | HTML内容。 |
Z
zengyawen 已提交
282

283 284
**返回值:**

Z
zengyawen 已提交
285 286 287
| 类型 | 说明 |
| -------- | -------- |
| [PasteDataRecord](#pastedatarecord7) | 一条新建的HTML内容条目。 |
Z
zengyawen 已提交
288

289
**示例:**
Z
zengyawen 已提交
290

L
linxinyu 已提交
291
```ts
292
let 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>";
L
linxinyu 已提交
293
let record: pasteboard.PasteDataRecord = pasteboard.createHtmlTextRecord(html);
294
```
Z
zengyawen 已提交
295

296
## pasteboard.createWantRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
297

298
createWantRecord(want: Want): PasteDataRecord
Z
zengyawen 已提交
299 300

创建一条Want内容条目。
301 302
> **说明:**
>
303
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
Z
zengyawen 已提交
304

305 306 307
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
308

Z
zengyawen 已提交
309 310
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Z
zhongjianfei 已提交
311
| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 |
312 313

**返回值:**
Z
zengyawen 已提交
314

Z
zengyawen 已提交
315 316
| 类型 | 说明 |
| -------- | -------- |
317
| [PasteDataRecord](#pastedatarecord7) | 一条新建的Want内容条目。 |
Z
zengyawen 已提交
318

319
**示例:**
Z
zengyawen 已提交
320

L
linxinyu 已提交
321 322 323 324
```ts
import Want from '@ohos.app.ability.Want';

let object: Want = {
325 326 327
    bundleName: "com.example.aafwk.test",
    abilityName: "com.example.aafwk.test.TwoAbility"
};
L
linxinyu 已提交
328
let record: pasteboard.PasteDataRecord = pasteboard.createWantRecord(object);
329
```
Z
zengyawen 已提交
330

331
## pasteboard.createPlainTextRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
332

333
createPlainTextRecord(text: string): PasteDataRecord
Z
zengyawen 已提交
334

335
创建一条纯文本内容条目。
336 337
> **说明:**
>
338
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
Z
zengyawen 已提交
339

340 341 342
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
343

Z
zengyawen 已提交
344 345
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
346
| text | string | 是 | 纯文本内容。 |
Z
zengyawen 已提交
347

348 349
**返回值:**

Z
zengyawen 已提交
350 351
| 类型 | 说明 |
| -------- | -------- |
352
| [PasteDataRecord](#pastedatarecord7) | 一条新建的纯文本内容条目。 |
Z
zengyawen 已提交
353

354
**示例:**
Z
zengyawen 已提交
355

L
linxinyu 已提交
356 357
```ts
let record: pasteboard.PasteDataRecord = pasteboard.createPlainTextRecord('hello');
358
```
Z
zengyawen 已提交
359

360
## pasteboard.createUriRecord<sup>(deprecated)</sup>
361

362
createUriRecord(uri: string): PasteDataRecord
363

364 365 366 367
创建一条URI内容的条目。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
368 369 370 371 372 373 374

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
375
| uri | string | 是 | URI内容。 |
376 377 378 379 380

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
381
| [PasteDataRecord](#pastedatarecord7) | 一条新建的URI内容条目。 |
382 383 384

**示例:**

L
linxinyu 已提交
385 386
```ts
let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
387
```
Z
zengyawen 已提交
388

389

390
## PasteDataProperty<sup>7+</sup>
Z
zengyawen 已提交
391

H
hjl2 已提交
392 393
定义了剪贴板中所有内容条目的属性,包含时间戳、数据类型、粘贴范围以及一些附加数据等,
该属性必须通过[setProperty](#setproperty9)方法,才能设置到剪贴板中。
Z
zengyawen 已提交
394

395
**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
396

H
hjl2 已提交
397 398
| 名称 | 类型 | 可读 | 可写 | 说明                                                                                                                                                                                                                                       |
| -------- | -------- | -------- | -------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
L
linxinyu 已提交
399
| additions<sup>7+</sup> | {[key:string]:object} | 是 | 是 | 设置其他附加属性数据。不支持动态追加属性,只能通过重新赋值的方式修改附加值,具体见相关示例setProperty。                                                                                                                                                                                                                              |
H
hjl2 已提交
400 401 402 403 404
| mimeTypes<sup>7+</sup> | Array&lt;string&gt; | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。                                                                                                                                                                                                                   |
| tag<sup>7+</sup> | string | 是 | 是 | 用户自定义标签。                                                                                                                                                                                                                                 |
| timestamp<sup>7+</sup> | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。                                                                                                                                                                                                                      |
| localOnly<sup>7+</sup> | boolean | 是 | 是 | 配置剪贴板内容是否为“仅在本地”,默认值为false。其值会被shareOption属性覆盖,推荐使用shareOption属性。ShareOption.INAPP、ShareOption.LOCALDEVICE会将localOnly设置为true,ShareOption.CROSSDEVICE会将localOnly设置为false。<br/>- 配置为true时,表示内容仅在本地,不会在设备之间传递。<br/>- 配置为false时,表示内容将在设备间传递。 |
| shareOption<sup>9+</sup> | [ShareOption](#shareoption9) | 是 | 是 | 指示剪贴板数据可以粘贴到的范围,如果未设置或设置不正确,则默认值为CROSSDEVICE。                                                                                                                                                                                            |
Z
zengyawen 已提交
405 406 407 408 409 410 411

## PasteDataRecord<sup>7+</sup>

对于剪贴板中内容记录的抽象定义,称之为条目。剪贴板内容部分由一个或者多个条目构成,例如一条文本内容、一份HTML、一个URI或者一个Want。

### 属性

412
**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
413

414
| 名称 | 类型 | 可读 | 可写 | 说明 |
Z
zengyawen 已提交
415
| -------- | -------- | -------- | -------- | -------- |
416
| htmlText<sup>7+</sup> | string | 是 | 否 | HTML内容。 |
Z
zhongjianfei 已提交
417
| want<sup>7+</sup> | [Want](js-apis-app-ability-want.md) | 是 | 否 | Want内容。 |
Z
zengyawen 已提交
418
| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 |
419
| plainText<sup>7+</sup> | string | 是 | 否 | 纯文本内容。 |
Z
zengyawen 已提交
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} | 是 | 否 | 自定义数据内容。 |
Z
zengyawen 已提交
423

Z
zzs110 已提交
424
### toPlainText<sup>9+</sup>
Z
zengyawen 已提交
425

Z
zzs110 已提交
426
toPlainText(): string
Z
zengyawen 已提交
427

Z
zzs110 已提交
428
将一个PasteData中的内容强制转换为文本内容。
Z
zengyawen 已提交
429

430 431
**系统能力:** SystemCapability.MiscServices.Pasteboard

432
**返回值:**
Z
zengyawen 已提交
433

434 435
| 类型 | 说明 |
| -------- | -------- |
Z
zzs110 已提交
436
| string | 纯文本内容。 |
Z
zengyawen 已提交
437

438
**示例:**
Z
zengyawen 已提交
439

L
linxinyu 已提交
440 441 442
```ts
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
let data: string = record.toPlainText();
Z
zzs110 已提交
443
console.info(`Succeeded in converting to text. Data: ${data}`);
444
```
Z
zengyawen 已提交
445

446
### convertToText<sup>(deprecated)</sup>
447

448
convertToText(callback: AsyncCallback&lt;string&gt;): void
449 450

将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。
451 452
> **说明:**
>
Z
zzs110 已提交
453
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
454 455 456 457 458 459 460 461 462 463 464

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,当转换成功,err为undefined,data为强制转换的文本内容;否则返回错误信息。 |

**示例:**

L
linxinyu 已提交
465 466 467 468 469
```ts
import { BusinessError } from '@ohos.base';

let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
record.convertToText((err: BusinessError, data: string) => {
Z
zzs110 已提交
470
    if (err) {
471
        console.error(`Failed to convert to text. Cause: ${err.message}`);
L
linxinyu 已提交
472 473
        return;
    }
474
    console.info(`Succeeded in converting to text. Data: ${data}`);
475 476 477
});
```

478
### convertToText<sup>(deprecated)</sup>
479

480
convertToText(): Promise&lt;string&gt;
481 482

将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。
483 484
> **说明:**
>
Z
zzs110 已提交
485
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
486 487 488 489 490 491 492 493 494 495 496

**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;string&gt; | Promise对象,返回强制转换的文本内容。 |

**示例:**

L
linxinyu 已提交
497 498 499 500 501
```ts
import { BusinessError } from '@ohos.base';

let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
record.convertToText().then((data: string) => {
502
    console.info(`Succeeded in converting to text. Data: ${data}`);
L
linxinyu 已提交
503
}).catch((err: BusinessError) => {
504
    console.error(`Failed to convert to text. Cause: ${err.message}`);
505 506
});
```
Z
zengyawen 已提交
507 508 509

## PasteData

510
剪贴板内容对象。剪贴板内容包含一个或者多个内容条目([PasteDataRecord](#pastedatarecord7))以及属性描述对象([PasteDataProperty](#pastedataproperty7))。
511

512
在调用PasteData的接口前,需要先通过[createData()](#pasteboardcreatedata9)[getData()](#getdata9)获取一个PasteData对象。
Z
zengyawen 已提交
513

Z
zzs110 已提交
514 515
**系统能力:** SystemCapability.MiscServices.Pasteboard

Z
zengyawen 已提交
516 517 518 519 520 521
### getPrimaryText

getPrimaryText(): string

获取首个条目的纯文本内容。

522
**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
523

524 525
**返回值:**

Z
zengyawen 已提交
526 527 528
| 类型 | 说明 |
| -------- | -------- |
| string | 纯文本内容。 |
Z
zengyawen 已提交
529

530
**示例:**
Z
zengyawen 已提交
531

L
linxinyu 已提交
532 533 534
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let plainText: string = pasteData.getPrimaryText();
535
```
Z
zengyawen 已提交
536 537 538 539 540

### getPrimaryHtml<sup>7+</sup>

getPrimaryHtml(): string

541
获取首个条目的HTML内容。
Z
zengyawen 已提交
542

543 544 545
**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**
Z
zengyawen 已提交
546

Z
zengyawen 已提交
547 548
| 类型 | 说明 |
| -------- | -------- |
549
| string | HTML内容。 |
Z
zengyawen 已提交
550

551
**示例:**
Z
zengyawen 已提交
552

L
linxinyu 已提交
553
```ts
554
let 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>";
L
linxinyu 已提交
555 556
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, html);
let htmlText: string = pasteData.getPrimaryHtml();
557
```
Z
zengyawen 已提交
558 559 560 561 562 563 564

### getPrimaryWant<sup>7+</sup>

getPrimaryWant(): Want

获取首个条目的Want对象内容。

565 566 567
**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**
Z
zengyawen 已提交
568

Z
zengyawen 已提交
569 570
| 类型 | 说明 |
| -------- | -------- |
Z
zhongjianfei 已提交
571
| [Want](js-apis-app-ability-want.md) | Want对象内容。 |
Z
zengyawen 已提交
572

573
**示例:**
Z
zengyawen 已提交
574

L
linxinyu 已提交
575 576 577 578
```ts
import Want from '@ohos.app.ability.Want';

let object: Want = {
579
    bundleName: "com.example.aafwk.test",
580 581
    abilityName: "com.example.aafwk.test.TwoAbility"
};
L
linxinyu 已提交
582 583
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, object);
let want: Want = pasteData.getPrimaryWant();
584
```
Z
zengyawen 已提交
585 586 587 588 589

### getPrimaryUri<sup>7+</sup>

getPrimaryUri(): string

590 591 592
获取首个条目的URI内容。

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
593

594
**返回值:**
Z
zengyawen 已提交
595

Z
zengyawen 已提交
596 597
| 类型 | 说明 |
| -------- | -------- |
598
| string | URI内容。 |
Z
zengyawen 已提交
599

600
**示例:**
Z
zengyawen 已提交
601

L
linxinyu 已提交
602 603 604
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
let uri: string = pasteData.getPrimaryUri();
605
```
Z
zengyawen 已提交
606

607 608 609 610
### getPrimaryPixelMap<sup>9+</sup>

getPrimaryPixelMap(): image.PixelMap

611 612 613
获取首个条目的PixelMap内容。

**系统能力:** SystemCapability.MiscServices.Pasteboard
614

615
**返回值:**
616 617 618

| 类型 | 说明 |
| -------- | -------- |
619 620 621 622
| [image.PixelMap](js-apis-image.md#pixelmap7) | PixelMap内容。 |

**示例:**

L
linxinyu 已提交
623
```ts
624 625
import image from '@ohos.multimedia.image';

626
let buffer = new ArrayBuffer(128);
L
linxinyu 已提交
627 628 629 630 631 632 633
let realSize: image.Size = { height: 3, width: 5 };
let opt: image.InitializationOptions = {
    size: realSize,
    pixelFormat: 3,
    editable: true,
    alphaType: 1,
    scaleMode: 1
634
};
L
linxinyu 已提交
635 636 637
image.createPixelMap(buffer, opt).then((pixelMap: image.PixelMap) => {
    let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
    let PixelMap: image.PixelMap = pasteData.getPrimaryPixelMap();
638
});
639
```
640

641
### addRecord<sup>7+</sup>
Z
zengyawen 已提交
642

643
addRecord(record: PasteDataRecord): void
Z
zengyawen 已提交
644

645
向当前剪贴板内容中添加一条条目,同时也会将条目类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
Z
zengyawen 已提交
646

647 648 649
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
650

Z
zengyawen 已提交
651 652
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
653
| record | [PasteDataRecord](#pastedatarecord7) | 是 | 待添加的条目。 |
Z
zengyawen 已提交
654

655
**示例:**
Z
zengyawen 已提交
656

L
linxinyu 已提交
657 658 659 660 661
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
let textRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let 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>";
let htmlRecord: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, html);
662 663
pasteData.addRecord(textRecord);
pasteData.addRecord(htmlRecord);
664
```
665 666
### addRecord<sup>9+</sup>

667
addRecord(mimeType: string, value: ValueType): void
668

669
向当前剪贴板内容中添加一条自定义数据内容条目,同时也会将自定义数据类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
670 671 672 673 674 675 676

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
mod  
LVB8189 已提交
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
**示例:**

L
linxinyu 已提交
690 691
  ```ts
  let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
692
  let dataXml = new ArrayBuffer(256);
693 694 695
  pasteData.addRecord('app/xml', dataXml);
  ```

Z
zengyawen 已提交
696 697 698 699 700 701
### getMimeTypes<sup>7+</sup>

getMimeTypes(): Array&lt;string&gt;

获取剪贴板中[PasteDataProperty](#pastedataproperty7)的mimeTypes列表,当剪贴板内容为空时,返回列表为空。

702 703 704
**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**
Z
zengyawen 已提交
705

Z
zengyawen 已提交
706 707
| 类型 | 说明 |
| -------- | -------- |
708
| Array&lt;string&gt; | 剪贴板内容条目的数据类型,非重复的类型列表。 |
Z
zengyawen 已提交
709

710
**示例:**
Z
zengyawen 已提交
711

L
linxinyu 已提交
712 713 714
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let types: string[] = pasteData.getMimeTypes();
715
```
Z
zengyawen 已提交
716 717 718 719 720

### getPrimaryMimeType<sup>7+</sup>

getPrimaryMimeType(): string

721
获取剪贴板内容中首个条目的数据类型。
Z
zengyawen 已提交
722

723 724 725
**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**
Z
zengyawen 已提交
726

Z
zengyawen 已提交
727 728 729
| 类型 | 说明 |
| -------- | -------- |
| string | 首个条目的数据类型。 |
Z
zengyawen 已提交
730

731
**示例:**
Z
zengyawen 已提交
732

L
linxinyu 已提交
733 734 735
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let type: string = pasteData.getPrimaryMimeType();
736
```
Z
zengyawen 已提交
737 738 739 740 741

### getProperty<sup>7+</sup>

getProperty(): PasteDataProperty

742
获取剪贴板内容的属性描述对象。
Z
zengyawen 已提交
743

744 745 746
**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**
Z
zengyawen 已提交
747

Z
zengyawen 已提交
748 749 750
| 类型 | 说明 |
| -------- | -------- |
| [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 |
Z
zengyawen 已提交
751

752
**示例:**
Z
zengyawen 已提交
753

L
linxinyu 已提交
754 755 756
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let property: pasteboard.PasteDataProperty = pasteData.getProperty();
757
```
Z
zengyawen 已提交
758

759
### setProperty<sup>9+</sup>
760

761
setProperty(property: PasteDataProperty): void
762

H
hjl2 已提交
763
设置剪贴板内容的属性描述对象[PasteDataProperty](#pastedataproperty7)
764 765

**系统能力:** SystemCapability.MiscServices.Pasteboard
766

767
**参数:**
768 769 770

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
771
| property | [PasteDataProperty](#pastedataproperty7) | 是 | 属性描述对象。 |
772

773
**示例:**
774

L
linxinyu 已提交
775 776 777 778 779
```ts
type AdditionType = Record<string, Record<string, Object>>;

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'application/xml');
let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
Z
zzs110 已提交
780
prop.shareOption = pasteboard.ShareOption.INAPP;
L
linxinyu 已提交
781 782
// 需要注意,不支持对addition进行追加属性的操作,只能通过重新赋值的方式达到追加属性的目的。
prop.additions = { 'TestOne': { 'Test': 123 }, 'TestTwo': { 'Test': 'additions' } } as AdditionType;
H
hjl2 已提交
783
prop.tag = 'TestTag';
784
pasteData.setProperty(prop);
H
hjl2 已提交
785 786
```
[PasteDataProperty](#pastedataproperty7)的localOnly与shareOption属性互斥,最终结果以shareOption为准,shareOption会影响localOnly的值。
L
linxinyu 已提交
787 788 789 790
```ts
(async () => {
    let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
    let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
H
hjl2 已提交
791 792
    prop.shareOption = pasteboard.ShareOption.INAPP;
    prop.localOnly = false;
L
linxinyu 已提交
793 794 795
    pasteData.setProperty(prop);
    let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();

H
hjl2 已提交
796 797
    await systemPasteboard.setData(pasteData).then(async () => {
        console.info('Succeeded in setting PasteData.');
L
linxinyu 已提交
798 799 800
        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
            prop.localOnly; // true
H
hjl2 已提交
801 802
        });
    });
L
linxinyu 已提交
803

H
hjl2 已提交
804 805 806
    prop.shareOption = pasteboard.ShareOption.LOCALDEVICE;
    prop.localOnly = false;
    pasteData.setProperty(prop);
L
linxinyu 已提交
807

H
hjl2 已提交
808 809
    await systemPasteboard.setData(pasteData).then(async () => {
        console.info('Succeeded in setting PasteData.');
L
linxinyu 已提交
810 811 812
        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
            prop.localOnly; // true
H
hjl2 已提交
813 814
        });
    });
L
linxinyu 已提交
815

H
hjl2 已提交
816 817 818
    prop.shareOption = pasteboard.ShareOption.CROSSDEVICE;
    prop.localOnly = true;
    pasteData.setProperty(prop);
L
linxinyu 已提交
819

H
hjl2 已提交
820 821
    await systemPasteboard.setData(pasteData).then(async () => {
        console.info('Succeeded in setting PasteData.');
L
linxinyu 已提交
822 823 824
        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
            prop.localOnly; // false
H
hjl2 已提交
825 826 827
        });
    });
})()
828
```
829

830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849
### getRecord<sup>9+</sup>

getRecord(index: number): PasteDataRecord

获取剪贴板内容中指定下标的条目。

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定条目的下标。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |

850
**错误码:**
851

852
以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)
853

854
| 错误码ID | 错误信息 |
855
| -------- | -------- |
Z
zuotao 已提交
856
| 12900001 | The index is out of the record. |
857

858 859
**示例:**

L
linxinyu 已提交
860 861 862
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteData.getRecord(0);
863
```
Z
zengyawen 已提交
864 865 866 867 868

### getRecordCount<sup>7+</sup>

getRecordCount(): number

869 870 871
获取剪贴板内容中条目的个数。

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
872

873
**返回值:**
Z
zengyawen 已提交
874

Z
zengyawen 已提交
875 876 877
| 类型 | 说明 |
| -------- | -------- |
| number | 条目的个数。 |
Z
zengyawen 已提交
878

879
**示例:**
Z
zengyawen 已提交
880

L
linxinyu 已提交
881 882 883
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let count: number = pasteData.getRecordCount();
884
```
Z
zengyawen 已提交
885 886 887 888 889

### getTag<sup>7+</sup>

getTag(): string

890 891 892
获取剪贴板内容中用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
893

894
**返回值:**
Z
zengyawen 已提交
895

Z
zengyawen 已提交
896 897
| 类型 | 说明 |
| -------- | -------- |
898
| string | 返回用户自定义的标签内容,如果没有设置用户自定义的标签内容,将返回空。 |
Z
zengyawen 已提交
899

900
**示例:**
Z
zengyawen 已提交
901

L
linxinyu 已提交
902 903 904
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let tag: string = pasteData.getTag();
905
```
Z
zengyawen 已提交
906

907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928
### hasType<sup>9+</sup>

hasType(mimeType: string): boolean

检查剪贴板内容中是否有指定的MIME数据类型。

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mimeType | string | 是 | 待查询的数据类型。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 有指定的数据类型返回true,否则返回false。 |

**示例:**

L
linxinyu 已提交
929 930 931
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let hasType: boolean = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN);
932 933
```

934
### removeRecord<sup>9+</sup>
Z
zengyawen 已提交
935

936
removeRecord(index: number): void
Z
zengyawen 已提交
937

938
移除剪贴板内容中指定下标的条目。
939 940

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
941

942
**参数:**
Z
zengyawen 已提交
943

Z
zengyawen 已提交
944 945
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
946
| index | number | 是 | 指定的下标。 |
Z
zengyawen 已提交
947

948
**错误码:**
949

950
以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)
951

952
| 错误码ID | 错误信息 |
953
| -------- | -------- |
Z
zuotao 已提交
954
| 12900001 | The index is out of the record. |
955

956
**示例:**
Z
zengyawen 已提交
957

L
linxinyu 已提交
958 959
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
960
pasteData.removeRecord(0);
961
```
Z
zengyawen 已提交
962

963
### replaceRecord<sup>9+</sup>
Z
zengyawen 已提交
964

965
replaceRecord(index: number, record: PasteDataRecord): void
Z
zengyawen 已提交
966

967
替换剪贴板内容中指定下标的条目。
968 969

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
970

971
**参数:**
Z
zengyawen 已提交
972

Z
zengyawen 已提交
973 974 975
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定的下标。 |
976
| record | [PasteDataRecord](#pastedatarecord7) | 是 | 新条目的内容。 |
Z
zengyawen 已提交
977

978
**错误码:**
979

980
以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)
981

982
| 错误码ID | 错误信息 |
983
| -------- | -------- |
Z
zuotao 已提交
984
| 12900001 | The index is out of the record. |
985

986
**示例:**
Z
zengyawen 已提交
987

L
linxinyu 已提交
988 989 990
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
991
pasteData.replaceRecord(0, record);
992
```
993
### addHtmlRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
994

995
addHtmlRecord(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 1004 1005 1006 1007 1008

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1009
| htmlText | string | 是 | HTML内容。 |
1010 1011 1012

**示例:**

L
linxinyu 已提交
1013 1014 1015
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let 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>";
1016
pasteData.addHtmlRecord(html);
1017
```
Z
zengyawen 已提交
1018

1019
### addWantRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
1020

1021
addWantRecord(want: Want): void
Z
zengyawen 已提交
1022

1023 1024
向当前剪贴板内容中添加一条Want条目,并将MIMETYPE_TEXT_WANT添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。

1025 1026
> **说明:**
>
1027
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1028 1029

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1030

1031
**参数:**
Z
zengyawen 已提交
1032

Z
zengyawen 已提交
1033 1034
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Z
zhongjianfei 已提交
1035
| want | [Want](js-apis-app-ability-want.md) | 是 | Want对象内容。 |
Z
zengyawen 已提交
1036

1037
**示例:**
Z
zengyawen 已提交
1038

L
linxinyu 已提交
1039 1040 1041 1042 1043
```ts
import Want from '@ohos.app.ability.Want';

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let object: Want = {
Z
zzs110 已提交
1044
    bundleName: "com.example.aafwk.test",
1045 1046 1047
    abilityName: "com.example.aafwk.test.TwoAbility"
};
pasteData.addWantRecord(object);
1048
```
Z
zengyawen 已提交
1049

1050
### addTextRecord<sup>(deprecated)</sup>
1051

1052
addTextRecord(text: string): void
1053

1054 1055 1056 1057 1058
向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。

> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1059 1060 1061 1062 1063 1064 1065

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1066
| text | string | 是 | 纯文本内容。 |
1067 1068 1069

**示例:**

L
linxinyu 已提交
1070 1071
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1072
pasteData.addTextRecord('good');
Z
zengyawen 已提交
1073 1074
```

1075
### addUriRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
1076

1077
addUriRecord(uri: string): void
Z
zengyawen 已提交
1078

1079
向当前剪贴板内容中添加一条URI条目,并将MIMETYPE_TEXT_URI添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
Z
zengyawen 已提交
1080

1081 1082 1083
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1084 1085

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1086

1087
**参数:**
Z
zengyawen 已提交
1088

Z
zengyawen 已提交
1089 1090
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1091
| uri | string | 是 | URI内容。 |
Z
zengyawen 已提交
1092

1093
**示例:**
Z
zengyawen 已提交
1094

L
linxinyu 已提交
1095 1096
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
1097
pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt');
1098
```
1099
### getRecordAt<sup>(deprecated)</sup>
Z
zengyawen 已提交
1100

1101
getRecordAt(index: number): PasteDataRecord
Z
zengyawen 已提交
1102

1103 1104 1105 1106
获取剪贴板内容中指定下标的条目。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[getRecord](#getrecord9)替代。
Z
zengyawen 已提交
1107

1108 1109 1110
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
1111

1112 1113 1114
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定条目的下标。 |
Z
zengyawen 已提交
1115

1116 1117
**返回值:**

Z
zengyawen 已提交
1118 1119
| 类型 | 说明 |
| -------- | -------- |
1120
| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |
Z
zengyawen 已提交
1121

1122
**示例:**
Z
zengyawen 已提交
1123

L
linxinyu 已提交
1124 1125 1126
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let record: pasteboard.PasteDataRecord = pasteData.getRecordAt(0);
1127
```
Z
zengyawen 已提交
1128

1129
### hasMimeType<sup>(deprecated)</sup>
1130

1131
hasMimeType(mimeType: string): boolean
1132

1133 1134 1135 1136
检查剪贴板内容中是否有指定的数据类型。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasType](#hastype9)替代。
1137 1138 1139 1140 1141 1142 1143

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1144 1145 1146 1147 1148 1149 1150
| mimeType | string | 是 | 待查询的数据类型。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 有指定的数据类型返回true,否则返回false。 |
1151 1152 1153

**示例:**

L
linxinyu 已提交
1154 1155 1156
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let hasType: boolean = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);
1157
```
1158
### removeRecordAt<sup>(deprecated)</sup>
1159

1160
removeRecordAt(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 1174 1175 1176 1177 1178 1179 1180 1181 1182
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定的下标。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 成功移除返回true,失败返回false。 |

**示例:**

L
linxinyu 已提交
1183 1184 1185
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let isRemove: boolean = pasteData.removeRecordAt(0);
1186 1187 1188 1189 1190 1191 1192 1193 1194
```
### replaceRecordAt<sup>(deprecated)</sup>

replaceRecordAt(index: number, record: PasteDataRecord): boolean

替换剪贴板内容中指定下标的条目。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[replaceRecord](#replacerecord9)替代。
1195 1196 1197 1198 1199

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

1200 1201 1202 1203
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定的下标。 |
| record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 |
1204 1205 1206 1207 1208

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
1209
| boolean | 成功替换返回true,失败返回false。 |
1210 1211 1212

**示例:**

L
linxinyu 已提交
1213 1214 1215 1216
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
let isReplace: boolean = pasteData.replaceRecordAt(0, record);
1217 1218 1219 1220 1221 1222 1223 1224
```

## SystemPasteboard

系统剪贴板对象。

在调用SystemPasteboard的接口前,需要先通过[getSystemPasteboard](#pasteboardgetsystempasteboard)获取系统剪贴板。

L
linxinyu 已提交
1225 1226
```ts
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1227
```
Z
zengyawen 已提交
1228

1229
### on('update')<sup>7+</sup>
Z
zengyawen 已提交
1230

1231
on(type:  'update', callback: () =&gt;void ): void
Z
zengyawen 已提交
1232

1233
订阅系统剪贴板内容变化事件,当系统剪贴板中内容变化时触发用户程序的回调。
1234 1235

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1236

1237
**参数:**
Z
zengyawen 已提交
1238

Z
zengyawen 已提交
1239 1240
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1241 1242
| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。 |
| callback | function | 是 | 剪贴板中内容变化时触发的用户程序的回调。 |
Z
zengyawen 已提交
1243

1244
**示例:**
Z
zengyawen 已提交
1245

L
linxinyu 已提交
1246 1247
```ts
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1248
let listener = () => {
1249 1250 1251
    console.info('The system pasteboard has changed.');
};
systemPasteboard.on('update', listener);
1252
```
Z
zengyawen 已提交
1253

1254
### off('update')<sup>7+</sup>
Z
zengyawen 已提交
1255

1256
off(type:  'update', callback?: () =&gt;void ): void
Z
zengyawen 已提交
1257

1258
取消订阅系统剪贴板内容变化事件。
1259 1260

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1261

1262
**参数:**
Z
zengyawen 已提交
1263

Z
zzs110 已提交
1264 1265 1266 1267
| 参数名 | 类型 | 必填 | 说明                                                      |
| -------- | -------- | -------- |---------------------------------------------------------|
| type | string | 是 | 取值为'update',表示系统剪贴板内容变化事件。                              |
| callback | function | 否 | 剪贴板中内容变化时触发的用户程序的回调。如果此参数未填,表明清除本应用的所有监听回调,否则表示清除指定监听回调。|
Z
zengyawen 已提交
1268

1269
**示例:**
Z
zengyawen 已提交
1270

L
linxinyu 已提交
1271 1272
```ts
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
1273 1274
let listener = () => {
    console.info('The system pasteboard has changed.');
1275
};
1276
systemPasteboard.off('update', listener);
1277
```
Z
zengyawen 已提交
1278

1279
### clearData<sup>9+</sup>
1280

1281
clearData(callback: AsyncCallback&lt;void&gt;): void
1282

1283
清空系统剪贴板内容,使用callback异步回调。
1284 1285 1286 1287 1288 1289 1290

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1291
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |
1292 1293 1294

**示例:**

L
linxinyu 已提交
1295 1296
```ts
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1297
systemPasteboard.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

1308
clearData(): Promise&lt;void&gt;
1309

1310
清空系统剪贴板内容,使用Promise异步回调。
1311 1312 1313 1314 1315 1316 1317

**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
1318
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1319 1320 1321

**示例:**

L
linxinyu 已提交
1322 1323 1324 1325 1326
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clearData().then((data: void) => {
1327
    console.info('Succeeded in clearing the pasteboard.');
L
linxinyu 已提交
1328
}).catch((err: BusinessError) => {
1329
    console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
1330
});
1331
```
Z
zengyawen 已提交
1332

1333
### setData<sup>9+</sup>
Z
zengyawen 已提交
1334

1335
setData(data: PasteData, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
1336

1337
将数据写入系统剪贴板,使用callback异步回调。
Z
zengyawen 已提交
1338

1339 1340 1341
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
1342

Z
zengyawen 已提交
1343 1344
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1345 1346
| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
| callback | AsyncCallback&lt;void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |
Z
zengyawen 已提交
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
**示例:**
Z
zengyawen 已提交
1358

L
linxinyu 已提交
1359 1360 1361
```ts
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1362
systemPasteboard.setData(pasteData, (err, data) => {
1363 1364 1365 1366 1367 1368
    if (err) {
        console.error('Failed to set PasteData. Cause: ' + err.message);
        return;
    }
    console.info('Succeeded in setting PasteData.');
});
1369
```
Z
zengyawen 已提交
1370

1371
### setData<sup>9+</sup>
Z
zengyawen 已提交
1372

1373
setData(data: PasteData): Promise&lt;void&gt;
Z
zengyawen 已提交
1374

1375
将数据写入系统剪贴板,使用Promise异步回调。
Z
zengyawen 已提交
1376

1377 1378 1379
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**
Z
zengyawen 已提交
1380

Z
zzs110 已提交
1381 1382 1383
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1384 1385 1386 1387 1388 1389

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zengyawen 已提交
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
**示例:**
Z
zengyawen 已提交
1401

L
linxinyu 已提交
1402 1403 1404 1405 1406 1407
```ts
import { BusinessError } from '@ohos.base';

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setData(pasteData).then((data: void) => {
1408
    console.info('Succeeded in setting PasteData.');
L
linxinyu 已提交
1409
}).catch((err: BusinessError) => {
1410 1411
    console.error('Failed to set PasteData. Cause: ' + err.message);
});
1412
```
Z
zengyawen 已提交
1413

1414
### getData<sup>9+</sup>
Z
zengyawen 已提交
1415

1416
getData( callback: AsyncCallback&lt;PasteData&gt;): void
Z
zengyawen 已提交
1417

1418
读取系统剪贴板内容,使用callback异步回调。
1419 1420

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1421

1422
**参数:**
Z
zengyawen 已提交
1423

Z
zengyawen 已提交
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
**示例:**

L
linxinyu 已提交
1438 1439 1440 1441 1442
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
1443
    if (err) {
1444
        console.error('Failed to get PasteData. Cause: ' + err.message);
1445 1446
        return;
    }
L
linxinyu 已提交
1447
    let text: string = pasteData.getPrimaryText();
1448 1449
});
```
Z
zengyawen 已提交
1450

1451
### getData<sup>9+</sup>
Z
zengyawen 已提交
1452

1453
getData(): Promise&lt;PasteData&gt;
Z
zengyawen 已提交
1454

1455
读取系统剪贴板内容,使用Promise异步回调。
1456 1457

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1458

1459
**返回值:**
Z
zengyawen 已提交
1460

Z
zengyawen 已提交
1461 1462
| 类型 | 说明 |
| -------- | -------- |
1463
| Promise&lt;[PasteData](#pastedata)&gt; | Promise对象,返回系统剪贴板数据。 |
Z
zengyawen 已提交
1464

1465
**错误码:**
1466

1467
以下错误码的详细介绍请参见[剪贴板错误码](../errorcodes/errorcode-pasteboard.md)
1468

1469
| 错误码ID | 错误信息 |
1470
| -------- | -------- |
1471
| 12900003 | Another copy or paste is in progress. |
1472

1473
**示例:**
Z
zengyawen 已提交
1474

L
linxinyu 已提交
1475 1476 1477 1478 1479 1480 1481
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
    let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
1482
    console.error('Failed to get PasteData. Cause: ' + err.message);
L
linxinyu 已提交
1483
});
1484
```
Z
zengyawen 已提交
1485

1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501
### hasData<sup>9+</sup>

hasData(callback:  AsyncCallback&lt;boolean&gt;): void

判断系统剪贴板中是否有内容,使用callback异步回调。

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |

**示例:**

L
linxinyu 已提交
1502 1503 1504 1505 1506
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasData((err: BusinessError, data: boolean) => {
1507
    if (err) {
1508
        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1509 1510
        return;
    }
1511
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530
});
```

### hasData<sup>9+</sup>

hasData(): Promise&lt;boolean&gt;

判断系统剪贴板中是否有内容,使用Promise异步回调。

**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |

**示例:**

L
linxinyu 已提交
1531 1532 1533 1534 1535
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasData().then((data: boolean) => {
1536
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
L
linxinyu 已提交
1537
}).catch((err: BusinessError) => {
1538
    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1539 1540
});
```
Z
zengyawen 已提交
1541

1542
### clear<sup>(deprecated)</sup>
Z
zengyawen 已提交
1543

1544
clear(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
1545

1546
清空系统剪贴板内容,使用callback异步回调。
1547 1548 1549
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9)替代。
1550 1551

**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1552

1553
**参数:**
Z
zengyawen 已提交
1554

Z
zengyawen 已提交
1555 1556
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1557 1558 1559 1560
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |

**示例:**

L
linxinyu 已提交
1561 1562
```ts
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1563 1564
systemPasteboard.clear((err, data) => {
    if (err) {
1565
        console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
1566
        return;
1567 1568 1569 1570
    }
    console.info('Succeeded in clearing the PasteData.');
});
```
Z
zengyawen 已提交
1571

1572
### clear<sup>(deprecated)</sup>
Z
zengyawen 已提交
1573

1574
clear(): Promise&lt;void&gt;
Z
zengyawen 已提交
1575

1576
清空系统剪贴板内容,使用Promise异步回调。
1577 1578 1579
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9-1)替代。
1580

1581
**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
1582

1583
**返回值:**
Z
zengyawen 已提交
1584

Z
zengyawen 已提交
1585 1586
| 类型 | 说明 |
| -------- | -------- |
1587
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zengyawen 已提交
1588

1589
**示例:**
Z
zengyawen 已提交
1590

L
linxinyu 已提交
1591 1592 1593 1594
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1595
systemPasteboard.clear().then((data) => {
1596
    console.info('Succeeded in clearing the PasteData.');
L
linxinyu 已提交
1597
}).catch((err: BusinessError) => {
1598
    console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
1599
});
1600 1601
```

1602
### getPasteData<sup>(deprecated)</sup>
1603

1604
getPasteData( callback: AsyncCallback&lt;PasteData&gt;): void
1605

1606 1607 1608 1609
读取系统剪贴板内容,使用callback异步回调。
> **说明:**
>
> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9)替代。
1610 1611 1612 1613 1614 1615 1616

**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1617
| callback | AsyncCallback&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数。当读取成功,err为undefined,data为返回的系统剪贴板数据;否则返回错误对象。 |
1618 1619 1620

**示例:**

L
linxinyu 已提交
1621 1622 1623 1624 1625
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getPasteData((err: BusinessError, pasteData: pasteboard.PasteData) => {
1626 1627 1628
    if (err) {
        console.error('Failed to get PasteData. Cause: ' + err.message);
        return;
1629
    }
L
linxinyu 已提交
1630
    let text: string = pasteData.getPrimaryText();
1631 1632 1633
});
```

1634
### getPasteData<sup>(deprecated)</sup>
1635

1636
getPasteData(): Promise&lt;PasteData&gt;
1637

1638 1639 1640 1641
读取系统剪贴板内容,使用Promise异步回调。
> **说明:**
>
> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9-1)替代。
1642 1643 1644 1645 1646

**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**

1647 1648 1649 1650 1651 1652
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[PasteData](#pastedata)&gt; | Promise对象,返回系统剪贴板数据。 |

**示例:**

L
linxinyu 已提交
1653 1654 1655 1656 1657 1658 1659
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getPasteData().then((pasteData: pasteboard.PasteData) => {
    let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
1660
    console.error('Failed to get PasteData. Cause: ' + err.message);
L
linxinyu 已提交
1661
});
1662 1663 1664 1665 1666 1667 1668 1669 1670 1671
```

### hasPasteData<sup>(deprecated)</sup>

hasPasteData(callback:  AsyncCallback&lt;boolean&gt;): void

判断系统剪贴板中是否有内容,使用callback异步回调。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9)替代。
1672

1673 1674 1675 1676 1677 1678 1679 1680 1681 1682
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |

**示例:**

L
linxinyu 已提交
1683 1684 1685 1686 1687
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasPasteData((err: BusinessError, data: boolean) => {
1688
    if (err) {
1689
        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1690 1691
        return;
    }
1692
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703
});
```

### hasPasteData<sup>(deprecated)</sup>

hasPasteData(): Promise&lt;boolean&gt;

判断系统剪贴板中是否有内容,使用Promise异步回调。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasData](#hasdata9-1)替代。
1704

1705 1706 1707 1708 1709 1710 1711 1712 1713 1714
**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | 返回true表示系统剪贴板中有内容,返回false表示系统剪贴板中没有内容。 |

**示例:**

L
linxinyu 已提交
1715 1716 1717 1718 1719
```ts
import { BusinessError } from '@ohos.base';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasPasteData().then((data: boolean) => {
1720
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
L
linxinyu 已提交
1721
}).catch((err: BusinessError) => {
1722
    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733
});
```

### setPasteData<sup>(deprecated)</sup>

setPasteData(data: PasteData, callback: AsyncCallback&lt;void&gt;): void

将数据写入系统剪贴板,使用callback异步回调。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9)替代。
1734

1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
| callback | AsyncCallback&lt;void> | 是 | 回调函数。当写入成功,err为undefined,否则为错误对象。 |

**示例:**

L
linxinyu 已提交
1746 1747 1748
```ts
let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1749
systemPasteboard.setPasteData(pasteData, (err, data) => {
1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764
    if (err) {
        console.error('Failed to set PasteData. Cause: ' + err.message);
        return;
    }
    console.info('Succeeded in setting PasteData.');
});
```
### setPasteData<sup>(deprecated)</sup>

setPasteData(data: PasteData): Promise&lt;void&gt;

将数据写入系统剪贴板,使用Promise异步回调。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[setData](#setdata9-1)替代。
1765

1766 1767 1768 1769
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

Z
zzs110 已提交
1770 1771 1772
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1773 1774 1775

**返回值:**

1776 1777 1778 1779 1780 1781
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**示例:**

L
linxinyu 已提交
1782 1783 1784 1785 1786 1787
```ts
import { BusinessError } from '@ohos.base';

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setPasteData(pasteData).then((data: void) => {
1788
    console.info('Succeeded in setting PasteData.');
L
linxinyu 已提交
1789
}).catch((err: BusinessError) => {
1790
    console.error('Failed to set PasteData. Cause: ' + err.message);
1791
});
Z
zzs110 已提交
1792
```