js-apis-pasteboard.md 48.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开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

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

15
## 常量
Z
zengyawen 已提交
16

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

19
| 名称 | 类型 | 值 | 说明 |
20 21
| -------- | -------- | -------- | -------- |
| MAX_RECORD_NUM<sup>7+</sup> | number | 512 | 单个PasteData中所能包含的最大条目数。 |
22 23 24 25 26
| 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
zengyawen 已提交
51 52
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
53 54
| mimeType | string | 是 | 自定义数据的MIME类型。 |
| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 |
55 56

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

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

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

64
  ```js
65
  let dataXml = new ArrayBuffer(256);
Z
zzs110 已提交
66
let pasteData = pasteboard.createData('app/xml', dataXml);
67
  ```
Z
zengyawen 已提交
68

69
## pasteboard.createRecord<sup>9+</sup>
Z
zengyawen 已提交
70

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

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

75 76 77
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
79 80
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
81 82
| mimeType | string | 是 | 自定义数据的MIME类型。 |
| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 |
83 84

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

Z
zengyawen 已提交
86 87
| 类型 | 说明 |
| -------- | -------- |
88 89 90 91 92
| [PasteDataRecord](#pastedatarecord7) | 一条新建的自定义数据内容条目。 |

**示例:**

  ```js
Z
zzs110 已提交
93 94
let dataXml = new ArrayBuffer(256);
let pasteDataRecord = pasteboard.createRecord('app/xml', dataXml);
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
  ```

## pasteboard.getSystemPasteboard

getSystemPasteboard(): SystemPasteboard

获取系统剪贴板对象。

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

**返回值:**

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

111
**示例:**
Z
zengyawen 已提交
112

113
```js
114
let systemPasteboard = pasteboard.getSystemPasteboard();
115
```
Z
zengyawen 已提交
116

117
## ShareOption<sup>9+</sup>
Z
zengyawen 已提交
118

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

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

Z
zzs110 已提交
123 124 125 126 127
| 名称          | 值 | 说明                |
|-------------|---|-------------------|
| INAPP       | 0 | 表示仅允许同应用内粘贴。      |
| LOCALDEVICE | 1 | 表示允许在此设备中任何应用内粘贴。 |
| CROSSDEVICE | 2 | 表示允许跨设备在任何应用内粘贴。  |
128 129 130 131 132 133

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

createHtmlData(htmlText: string): PasteData

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

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

140
**参数:**
Z
zengyawen 已提交
141

Z
zengyawen 已提交
142 143
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
144
| htmlText | string | 是 | HTML内容。 |
145 146

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

Z
zengyawen 已提交
148 149
| 类型 | 说明 |
| -------- | -------- |
150
| [PasteData](#pastedata) | 剪贴板内容对象。 |
Z
zengyawen 已提交
151

152
**示例:**
Z
zengyawen 已提交
153

154
```js
155 156
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>";
let pasteData = pasteboard.createHtmlData(html);
157
```
Z
zengyawen 已提交
158

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

161
createWantData(want: Want): PasteData
Z
zengyawen 已提交
162

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

168 169 170
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
172 173
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Z
zhongjianfei 已提交
174
| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 |
175 176

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

Z
zengyawen 已提交
178 179
| 类型 | 说明 |
| -------- | -------- |
180
| [PasteData](#pastedata) | 剪贴板内容对象。 |
Z
zengyawen 已提交
181

182
**示例:**
Z
zengyawen 已提交
183

184
```js
185
let object = {
186 187 188
    bundleName: "com.example.aafwk.test",
    abilityName: "com.example.aafwk.test.TwoAbility"
};
189
let pasteData = pasteboard.createWantData(object);
190
```
Z
zengyawen 已提交
191

192
## pasteboard.createPlainTextData<sup>(deprecated)</sup>
193

194
createPlainTextData(text: string): PasteData
195

196 197 198 199
构建一个纯文本剪贴板内容对象。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
200 201 202 203 204 205 206

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
207
| text | string | 是 | 纯文本内容。 |
208 209 210 211 212

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
213
| [PasteData](#pastedata) | 剪贴板内容对象。 |
214 215 216

**示例:**

217
```js
218
let pasteData = pasteboard.createPlainTextData('content');
219
```
220

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

223
createUriData(uri: string): PasteData
Z
zengyawen 已提交
224

225
构建一个URI剪贴板内容对象。
226 227
> **说明:**
>
228
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createData](#pasteboardcreatedata9)替代。
229 230

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

232
**参数:**
Z
zengyawen 已提交
233

Z
zengyawen 已提交
234 235
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
236
| uri | string | 是 | URI内容。 |
Z
zengyawen 已提交
237

238 239
**返回值:**

Z
zengyawen 已提交
240 241
| 类型 | 说明 |
| -------- | -------- |
242
| [PasteData](#pastedata) | 剪贴板内容对象。 |
Z
zengyawen 已提交
243

244
**示例:**
Z
zengyawen 已提交
245

246
```js
247
let pasteData = pasteboard.createUriData('dataability:///com.example.myapplication1/user.txt');
248
```
249
## pasteboard.createHtmlTextRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
250

251
createHtmlTextRecord(htmlText: string): PasteDataRecord
Z
zengyawen 已提交
252 253

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

258 259 260
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
262 263
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
264
| htmlText | string | 是 | HTML内容。 |
Z
zengyawen 已提交
265

266 267
**返回值:**

Z
zengyawen 已提交
268 269 270
| 类型 | 说明 |
| -------- | -------- |
| [PasteDataRecord](#pastedatarecord7) | 一条新建的HTML内容条目。 |
Z
zengyawen 已提交
271

272
**示例:**
Z
zengyawen 已提交
273

274
```js
275 276
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>";
let record = pasteboard.createHtmlTextRecord(html);
277
```
Z
zengyawen 已提交
278

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

281
createWantRecord(want: Want): PasteDataRecord
Z
zengyawen 已提交
282 283

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

288 289 290
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
292 293
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Z
zhongjianfei 已提交
294
| want | [Want](js-apis-app-ability-want.md) | 是 | Want内容。 |
295 296

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

Z
zengyawen 已提交
298 299
| 类型 | 说明 |
| -------- | -------- |
300
| [PasteDataRecord](#pastedatarecord7) | 一条新建的Want内容条目。 |
Z
zengyawen 已提交
301

302
**示例:**
Z
zengyawen 已提交
303

304
```js
305
let object = {
306 307 308
    bundleName: "com.example.aafwk.test",
    abilityName: "com.example.aafwk.test.TwoAbility"
};
309
let record = pasteboard.createWantRecord(object);
310
```
Z
zengyawen 已提交
311

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

314
createPlainTextRecord(text: string): PasteDataRecord
Z
zengyawen 已提交
315

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

321 322 323
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
325 326
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
327
| text | string | 是 | 纯文本内容。 |
Z
zengyawen 已提交
328

329 330
**返回值:**

Z
zengyawen 已提交
331 332
| 类型 | 说明 |
| -------- | -------- |
333
| [PasteDataRecord](#pastedatarecord7) | 一条新建的纯文本内容条目。 |
Z
zengyawen 已提交
334

335
**示例:**
Z
zengyawen 已提交
336

337
```js
338
let record = pasteboard.createPlainTextRecord('hello');
339
```
Z
zengyawen 已提交
340

341
## pasteboard.createUriRecord<sup>(deprecated)</sup>
342

343
createUriRecord(uri: string): PasteDataRecord
344

345 346 347 348
创建一条URI内容的条目。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.createRecord](#pasteboardcreaterecord9)替代。
349 350 351 352 353 354 355

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
356
| uri | string | 是 | URI内容。 |
357 358 359 360 361

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
362
| [PasteDataRecord](#pastedatarecord7) | 一条新建的URI内容条目。 |
363 364 365 366

**示例:**

```js
367
let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
368
```
Z
zengyawen 已提交
369

370

371
## PasteDataProperty<sup>7+</sup>
Z
zengyawen 已提交
372

373
定义了剪贴板中所有内容条目的属性,包含时间戳、数据类型、粘贴范围以及一些附加数据等。
Z
zengyawen 已提交
374

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

Z
zzs110 已提交
377 378
| 名称 | 类型 | 可读 | 可写 | 说明                                                                                         |
| -------- | -------- | -------- | -------- |--------------------------------------------------------------------------------------------|
H
hjl 已提交
379
| additions<sup>7+</sup> | {[key:string]:object} | 是 | 是 | 设置的其他附加属性数据, 暂不支持。                                                                               |
Z
zzs110 已提交
380
| mimeTypes<sup>7+</sup> | Array&lt;string&gt; | 是 | 否 | 剪贴板内容条目的数据类型,非重复的类型列表。                                                                     |
H
hjl 已提交
381
| tag<sup>7+</sup> | string | 是 | 是 | 用户自定义标签, 暂不支持。                                                                                   |
Z
zzs110 已提交
382
| timestamp<sup>7+</sup> | number | 是 | 否 | 剪贴板数据的写入时间戳(单位:ms)。                                                                        |
H
hjl 已提交
383
| localOnly<sup>7+</sup> | boolean | 是 | 是 | 配置剪贴板内容是否为“仅在本地”, 默认值为true。暂不支持, 推荐使用shareOption属性。<br/>- 配置为true时,表示内容仅在本地,不会在设备之间传递。<br/>- 配置为false时,表示内容将在设备间传递。 |
Z
zzs110 已提交
384
| shareOption<sup>9+</sup> | [ShareOption](#shareoption9) | 是 | 是 | 指示剪贴板数据可以粘贴到的范围,如果未设置或设置不正确,则默认值为CROSSDEVICE。                                              |
Z
zengyawen 已提交
385 386 387 388 389 390 391

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

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

### 属性

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

394
| 名称 | 类型 | 可读 | 可写 | 说明 |
Z
zengyawen 已提交
395
| -------- | -------- | -------- | -------- | -------- |
396
| htmlText<sup>7+</sup> | string | 是 | 否 | HTML内容。 |
Z
zhongjianfei 已提交
397
| want<sup>7+</sup> | [Want](js-apis-app-ability-want.md) | 是 | 否 | Want内容。 |
Z
zengyawen 已提交
398
| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 |
399
| plainText<sup>7+</sup> | string | 是 | 否 | 纯文本内容。 |
Z
zengyawen 已提交
400
| uri<sup>7+</sup> | string | 是 | 否 | URI内容。 |
401
| pixelMap<sup>9+</sup> | [image.PixelMap](js-apis-image.md#pixelmap7) | 是 | 否 | PixelMap内容。 |
402
| data<sup>9+</sup> | {[mimeType:&nbsp;string]:&nbsp;ArrayBuffer} | 是 | 否 | 自定义数据内容。 |
Z
zengyawen 已提交
403

Z
zzs110 已提交
404
### toPlainText<sup>9+</sup>
Z
zengyawen 已提交
405

Z
zzs110 已提交
406
toPlainText(): string
Z
zengyawen 已提交
407

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

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

412
**返回值:**
Z
zengyawen 已提交
413

414 415
| 类型 | 说明 |
| -------- | -------- |
Z
zzs110 已提交
416
| string | 纯文本内容。 |
Z
zengyawen 已提交
417

418
**示例:**
Z
zengyawen 已提交
419

420
```js
Z
zzs110 已提交
421
let record = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
422
let data = record.toPlainText();
Z
zzs110 已提交
423
console.info(`Succeeded in converting to text. Data: ${data}`);
424
```
Z
zengyawen 已提交
425

426
### convertToText<sup>(deprecated)</sup>
427

428
convertToText(callback: AsyncCallback&lt;string&gt;): void
429 430

将一个PasteData中的内容强制转换为文本内容,使用callback异步回调。
431 432
> **说明:**
>
Z
zzs110 已提交
433
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
434 435 436 437 438 439 440 441 442 443 444 445

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

**参数:**

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

**示例:**

```js
446
let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
Z
zzs110 已提交
447 448
record.convertToText((err, data) => {
    if (err) {
449
        console.error(`Failed to convert to text. Cause: ${err.message}`);
450 451
        return;   
      }
452
    console.info(`Succeeded in converting to text. Data: ${data}`);
453 454 455
});
```

456
### convertToText<sup>(deprecated)</sup>
457

458
convertToText(): Promise&lt;string&gt;
459 460

将一个PasteData中的内容强制转换为文本内容,使用Promise异步回调。
461 462
> **说明:**
>
Z
zzs110 已提交
463
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[toPlainText](#toplaintext9)替代。
464 465 466 467 468 469 470 471 472 473 474 475

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

**返回值:**

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

**示例:**

```js
476
let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
477
record.convertToText().then((data) => {
478
    console.info(`Succeeded in converting to text. Data: ${data}`);
479
}).catch((err) => {
480
    console.error(`Failed to convert to text. Cause: ${err.message}`);
481 482
});
```
Z
zengyawen 已提交
483 484 485

## PasteData

486 487
剪贴板内容对象。

Z
zengyawen 已提交
488 489
在调用PasteData的接口前,需要先获取一个PasteData对象。

490
**系统能力:** SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
491 492 493 494 495 496 497

### getPrimaryText

getPrimaryText(): string

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

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

500 501
**返回值:**

Z
zengyawen 已提交
502 503 504
| 类型 | 说明 |
| -------- | -------- |
| string | 纯文本内容。 |
Z
zengyawen 已提交
505

506
**示例:**
Z
zengyawen 已提交
507

508
```js
Z
zzs110 已提交
509
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
510
let plainText = pasteData.getPrimaryText();
511
```
Z
zengyawen 已提交
512 513 514 515 516

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

getPrimaryHtml(): string

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

519 520 521
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
523 524
| 类型 | 说明 |
| -------- | -------- |
525
| string | HTML内容。 |
Z
zengyawen 已提交
526

527
**示例:**
Z
zengyawen 已提交
528

529
```js
530
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>";
Z
zzs110 已提交
531
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, html);
532
let htmlText = pasteData.getPrimaryHtml();
533
```
Z
zengyawen 已提交
534 535 536 537 538 539 540

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

getPrimaryWant(): Want

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

541 542 543
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
545 546
| 类型 | 说明 |
| -------- | -------- |
Z
zhongjianfei 已提交
547
| [Want](js-apis-app-ability-want.md) | Want对象内容。 |
Z
zengyawen 已提交
548

549
**示例:**
Z
zengyawen 已提交
550

551
```js
552 553
let object = { 
    bundleName: "com.example.aafwk.test",
554 555
    abilityName: "com.example.aafwk.test.TwoAbility"
};
Z
zzs110 已提交
556
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, object);
557
let want = pasteData.getPrimaryWant();
558
```
Z
zengyawen 已提交
559 560 561 562 563

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

getPrimaryUri(): string

564 565 566
获取首个条目的URI内容。

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

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

Z
zengyawen 已提交
570 571
| 类型 | 说明 |
| -------- | -------- |
572
| string | URI内容。 |
Z
zengyawen 已提交
573

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

576
```js
Z
zzs110 已提交
577
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
578
let uri = pasteData.getPrimaryUri();
579
```
Z
zengyawen 已提交
580

581 582 583 584
### getPrimaryPixelMap<sup>9+</sup>

getPrimaryPixelMap(): image.PixelMap

585 586 587
获取首个条目的PixelMap内容。

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

589
**返回值:**
590 591 592

| 类型 | 说明 |
| -------- | -------- |
593 594 595 596 597 598 599
| [image.PixelMap](js-apis-image.md#pixelmap7) | PixelMap内容。 |

**示例:**

```js
import image from '@ohos.multimedia.image';

600 601
let buffer = new ArrayBuffer(128);
let opt = {
602 603 604 605 606
  size: { height: 3, width: 5 },
  pixelFormat: 3,
  editable: true,
  alphaType: 1,
  scaleMode: 1
607
};
608
image.createPixelMap(buffer, opt).then((pixelMap) => {
Z
zuotao 已提交
609
    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
610
    let PixelMap = pasteData.getPrimaryPixelMap();
611
});
612
```
613

614
### addRecord<sup>7+</sup>
Z
zengyawen 已提交
615

616
addRecord(record: PasteDataRecord): void
Z
zengyawen 已提交
617

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

L
mod  
LVB8189 已提交
620
剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
Z
zengyawen 已提交
621

622 623 624
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

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

630
**示例:**
Z
zengyawen 已提交
631

632
```js
Z
zzs110 已提交
633 634
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
let textRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
635
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>";
Z
zzs110 已提交
636
let htmlRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, html);
637 638
pasteData.addRecord(textRecord);
pasteData.addRecord(htmlRecord);
639
```
640 641
### addRecord<sup>9+</sup>

642
addRecord(mimeType: string, value: ValueType): void
643

644
向当前剪贴板内容中添加一条自定义数据内容条目,同时也会将自定义数据类型添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。
645 646 647 648 649 650 651 652 653

剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
mod  
LVB8189 已提交
654
| mimeType | string | 是 | 自定义数据的MIME类型。 |
655
| value | [ValueType](#valuetype9) | 是 | 自定义数据内容。 |
656

657
**错误码:**
658

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

661
| 错误码ID | 错误信息 |
662
| -------- | -------- |
663
| 12900002 | The number of record exceeds the maximum limit. |
664

665 666 667
**示例:**

  ```js
Z
zzs110 已提交
668
  let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
669
  let dataXml = new ArrayBuffer(256);
670 671 672
  pasteData.addRecord('app/xml', dataXml);
  ```

Z
zengyawen 已提交
673 674 675 676 677 678
### getMimeTypes<sup>7+</sup>

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

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

679 680 681
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

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

687
**示例:**
Z
zengyawen 已提交
688

689
```js
Z
zzs110 已提交
690
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
691
let types = pasteData.getMimeTypes();
692
```
Z
zengyawen 已提交
693 694 695 696 697

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

getPrimaryMimeType(): string

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

700 701 702
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
704 705 706
| 类型 | 说明 |
| -------- | -------- |
| string | 首个条目的数据类型。 |
Z
zengyawen 已提交
707

708
**示例:**
Z
zengyawen 已提交
709

710
```js
Z
zzs110 已提交
711
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
712
let type = pasteData.getPrimaryMimeType();
713
```
Z
zengyawen 已提交
714 715 716 717 718

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

getProperty(): PasteDataProperty

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

721 722 723
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zengyawen 已提交
725 726 727
| 类型 | 说明 |
| -------- | -------- |
| [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 |
Z
zengyawen 已提交
728

729
**示例:**
Z
zengyawen 已提交
730

731
```js
Z
zzs110 已提交
732
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
733
let property = pasteData.getProperty();
734
```
Z
zengyawen 已提交
735

736
### setProperty<sup>9+</sup>
737

738
setProperty(property: PasteDataProperty): void
739

740 741 742
设置剪贴板内容的属性描述对象,当前仅支持设置shareOption属性。

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

744
**参数:**
745 746 747

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

750
**示例:**
751

752
```js
Z
zzs110 已提交
753
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'application/xml');
754
let prop = pasteData.getProperty();
Z
zzs110 已提交
755
prop.shareOption = pasteboard.ShareOption.INAPP;
756 757
pasteData.setProperty(prop);
```
758

759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778
### getRecord<sup>9+</sup>

getRecord(index: number): PasteDataRecord

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

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

**参数:**

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

**返回值:**

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

779
**错误码:**
780

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

783
| 错误码ID | 错误信息 |
784
| -------- | -------- |
Z
zuotao 已提交
785
| 12900001 | The index is out of the record. |
786

787 788 789
**示例:**

```js
Z
zzs110 已提交
790
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
791
let record = pasteData.getRecord(0);
792
```
Z
zengyawen 已提交
793 794 795 796 797

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

getRecordCount(): number

798 799 800
获取剪贴板内容中条目的个数。

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

802
**返回值:**
Z
zengyawen 已提交
803

Z
zengyawen 已提交
804 805 806
| 类型 | 说明 |
| -------- | -------- |
| number | 条目的个数。 |
Z
zengyawen 已提交
807

808
**示例:**
Z
zengyawen 已提交
809

810
```js
Z
zzs110 已提交
811
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
812
let count = pasteData.getRecordCount();
813
```
Z
zengyawen 已提交
814 815 816 817 818

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

getTag(): string

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

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

823
**返回值:**
Z
zengyawen 已提交
824

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

829
**示例:**
Z
zengyawen 已提交
830

831
```js
Z
zzs110 已提交
832
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
833
let tag = pasteData.getTag();
834
```
Z
zengyawen 已提交
835

836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858
### hasType<sup>9+</sup>

hasType(mimeType: string): boolean

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

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

**参数:**

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

**返回值:**

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

**示例:**

```js
Z
zzs110 已提交
859
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
860
let hasType = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN);
861 862
```

863
### removeRecord<sup>9+</sup>
Z
zengyawen 已提交
864

865
removeRecord(index: number): void
Z
zengyawen 已提交
866

867
移除剪贴板内容中指定下标的条目。
868 869

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

871
**参数:**
Z
zengyawen 已提交
872

Z
zengyawen 已提交
873 874
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
875
| index | number | 是 | 指定的下标。 |
Z
zengyawen 已提交
876

877
**错误码:**
878

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

881
| 错误码ID | 错误信息 |
882
| -------- | -------- |
Z
zuotao 已提交
883
| 12900001 | The index is out of the record. |
884

885
**示例:**
Z
zengyawen 已提交
886

887
```js
Z
zzs110 已提交
888
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
889
pasteData.removeRecord(0);
890
```
Z
zengyawen 已提交
891

892
### replaceRecord<sup>9+</sup>
Z
zengyawen 已提交
893

894
replaceRecord(index: number, record: PasteDataRecord): void
Z
zengyawen 已提交
895

896
替换剪贴板内容中指定下标的条目。
897 898

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

900
**参数:**
Z
zengyawen 已提交
901

Z
zengyawen 已提交
902 903 904
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定的下标。 |
905
| record | [PasteDataRecord](#pastedatarecord7) | 是 | 新条目的内容。 |
Z
zengyawen 已提交
906

907
**错误码:**
908

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

911
| 错误码ID | 错误信息 |
912
| -------- | -------- |
Z
zuotao 已提交
913
| 12900001 | The index is out of the record. |
914

915
**示例:**
Z
zengyawen 已提交
916

917
```js
Z
zzs110 已提交
918 919
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
920
pasteData.replaceRecord(0, record);
921
```
922
### addHtmlRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
923

924
addHtmlRecord(htmlText: string): void
925

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

928 929 930 931
剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
932 933 934 935 936 937 938

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
939
| htmlText | string | 是 | HTML内容。 |
940 941 942 943

**示例:**

```js
944 945
let pasteData = pasteboard.createPlainTextData('hello');
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>";
946
pasteData.addHtmlRecord(html);
947
```
Z
zengyawen 已提交
948

949
### addWantRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
950

951
addWantRecord(want: Want): void
Z
zengyawen 已提交
952

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

剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
956 957
> **说明:**
>
958
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
959 960

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

962
**参数:**
Z
zengyawen 已提交
963

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

968
**示例:**
Z
zengyawen 已提交
969

970
```js
971
let pasteData = pasteboard.createPlainTextData('hello');
Z
zzs110 已提交
972 973
let object = {
    bundleName: "com.example.aafwk.test",
974 975 976
    abilityName: "com.example.aafwk.test.TwoAbility"
};
pasteData.addWantRecord(object);
977
```
Z
zengyawen 已提交
978

979
### addTextRecord<sup>(deprecated)</sup>
980

981
addTextRecord(text: string): void
982

983 984 985 986 987 988
向当前剪贴板内容中添加一条纯文本条目,并将MIME_TEXT_PLAIN添加到[PasteDataProperty](#pastedataproperty7)的mimeTypes中。入参均不能为空,否则添加失败。

剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
989 990 991 992 993 994 995

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
996
| text | string | 是 | 纯文本内容。 |
997 998 999 1000

**示例:**

```js
1001 1002
let pasteData = pasteboard.createPlainTextData('hello');
pasteData.addTextRecord('good');
Z
zengyawen 已提交
1003 1004
```

1005
### addUriRecord<sup>(deprecated)</sup>
Z
zengyawen 已提交
1006

1007
addUriRecord(uri: string): void
Z
zengyawen 已提交
1008

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

1011 1012 1013 1014
剪贴板内容中添加的条目达到数量上限512后,后续的添加操作无效。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[addRecord](#addrecord9)替代。
1015 1016

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

1018
**参数:**
Z
zengyawen 已提交
1019

Z
zengyawen 已提交
1020 1021
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1022
| uri | string | 是 | URI内容。 |
Z
zengyawen 已提交
1023

1024
**示例:**
Z
zengyawen 已提交
1025

1026
```js
1027 1028
let pasteData = pasteboard.createPlainTextData('hello');
pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt');
1029
```
1030
### getRecordAt<sup>(deprecated)</sup>
Z
zengyawen 已提交
1031

1032
getRecordAt(index: number): PasteDataRecord
Z
zengyawen 已提交
1033

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

1039 1040 1041
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

1043 1044 1045
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定条目的下标。 |
Z
zengyawen 已提交
1046

1047 1048
**返回值:**

Z
zengyawen 已提交
1049 1050
| 类型 | 说明 |
| -------- | -------- |
1051
| [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |
Z
zengyawen 已提交
1052

1053
**示例:**
Z
zengyawen 已提交
1054

1055
```js
1056 1057
let pasteData = pasteboard.createPlainTextData('hello');
let record = pasteData.getRecordAt(0);
1058
```
Z
zengyawen 已提交
1059

1060
### hasMimeType<sup>(deprecated)</sup>
1061

1062
hasMimeType(mimeType: string): boolean
1063

1064 1065 1066 1067
检查剪贴板内容中是否有指定的数据类型。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[hasType](#hastype9)替代。
1068 1069 1070 1071 1072 1073 1074

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1075 1076 1077 1078 1079 1080 1081
| mimeType | string | 是 | 待查询的数据类型。 |

**返回值:**

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

**示例:**

```js
1086 1087
let pasteData = pasteboard.createPlainTextData('hello');
let hasType = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);
1088
```
1089
### removeRecordAt<sup>(deprecated)</sup>
1090

1091
removeRecordAt(index: number): boolean
1092

1093 1094 1095 1096
移除剪贴板内容中指定下标的条目。
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[removeRecord](#removerecord9)替代。
1097

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

1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114
**参数:**

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

**返回值:**

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

**示例:**

```js
1115 1116
let pasteData = pasteboard.createPlainTextData('hello');
let isRemove = pasteData.removeRecordAt(0);
1117 1118 1119 1120 1121 1122 1123 1124 1125
```
### replaceRecordAt<sup>(deprecated)</sup>

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

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

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

**参数:**

1131 1132 1133 1134
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定的下标。 |
| record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 |
1135 1136 1137 1138 1139

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
1140
| boolean | 成功替换返回true,失败返回false。 |
1141 1142 1143 1144

**示例:**

```js
1145 1146 1147
let pasteData = pasteboard.createPlainTextData('hello');
let record = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
let isReplace = pasteData.replaceRecordAt(0, record);
1148 1149 1150 1151 1152 1153 1154 1155 1156
```

## SystemPasteboard

系统剪贴板对象。

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

```js
1157
let systemPasteboard = pasteboard.getSystemPasteboard();
1158
```
Z
zengyawen 已提交
1159

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

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

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

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

1168
**参数:**
Z
zengyawen 已提交
1169

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

1175
**示例:**
Z
zengyawen 已提交
1176

1177
```js
1178 1179
let systemPasteboard = pasteboard.getSystemPasteboard();
let listener = () => {
1180 1181 1182
    console.info('The system pasteboard has changed.');
};
systemPasteboard.on('update', listener);
1183
```
Z
zengyawen 已提交
1184

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

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

1189
取消订阅系统剪贴板内容变化事件。
1190 1191

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

1193
**参数:**
Z
zengyawen 已提交
1194

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

1200
**示例:**
Z
zengyawen 已提交
1201

1202
```js
1203
let systemPasteboard = pasteboard.getSystemPasteboard();
1204 1205
let listener = () => {
    console.info('The system pasteboard has changed.');
1206
};
1207
systemPasteboard.off('update', listener);
1208
```
Z
zengyawen 已提交
1209

1210
### clearData<sup>9+</sup>
1211

1212
clearData(callback: AsyncCallback&lt;void&gt;): void
1213

1214
清空系统剪贴板内容,使用callback异步回调。
1215 1216 1217 1218 1219 1220 1221

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

**参数:**

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

**示例:**

```js
1227
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1228
systemPasteboard.clearData((err, data) => {
1229
    if (err) {
1230
        console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
1231
        return;
1232
    }
1233
    console.info('Succeeded in clearing the pasteboard.');
1234 1235 1236
});
```

1237
### clearData<sup>9+</sup>
1238

1239
clearData(): Promise&lt;void&gt;
1240

1241
清空系统剪贴板内容,使用Promise异步回调。
1242 1243 1244 1245 1246 1247 1248

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
1249
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
1250 1251 1252 1253

**示例:**

```js
1254
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1255
systemPasteboard.clearData().then((data) => {
1256
    console.info('Succeeded in clearing the pasteboard.');
1257 1258
}).catch((err) => {
    console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
1259
});
1260
```
Z
zengyawen 已提交
1261

1262
### setData<sup>9+</sup>
Z
zengyawen 已提交
1263

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

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

1268 1269 1270
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

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

1277
**错误码:**
1278

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

1281
| 错误码ID | 错误信息 |
1282
| -------- | -------- |
1283
| 12900003 | Another copy or paste is in progress. |
1284
| 12900004 | Replication is prohibited. |
1285

1286
**示例:**
Z
zengyawen 已提交
1287

1288
```js
1289 1290
let pasteData = pasteboard.createPlainTextData('content');
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1291
systemPasteboard.setData(pasteData, (err, data) => {
1292 1293 1294 1295 1296 1297
    if (err) {
        console.error('Failed to set PasteData. Cause: ' + err.message);
        return;
    }
    console.info('Succeeded in setting PasteData.');
});
1298
```
Z
zengyawen 已提交
1299

1300
### setData<sup>9+</sup>
Z
zengyawen 已提交
1301

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

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

1306 1307 1308
**系统能力:** SystemCapability.MiscServices.Pasteboard

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

Z
zzs110 已提交
1310 1311 1312
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1313 1314 1315 1316 1317 1318

**返回值:**

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

1320
**错误码:**
1321

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

1324
| 错误码ID | 错误信息 |
1325
| -------- | -------- |
1326
| 12900003 | Another copy or paste is in progress. |
1327
| 12900004 | Replication is prohibited. |
1328

1329
**示例:**
Z
zengyawen 已提交
1330

1331
```js
1332 1333
let pasteData = pasteboard.createPlainTextData('content');
let systemPasteboard = pasteboard.getSystemPasteboard();
1334 1335 1336 1337 1338
systemPasteboard.setData(pasteData).then((data) => {
    console.info('Succeeded in setting PasteData.');
}).catch((err) => {
    console.error('Failed to set PasteData. Cause: ' + err.message);
});
1339
```
Z
zengyawen 已提交
1340

1341
### getData<sup>9+</sup>
Z
zengyawen 已提交
1342

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

1345
读取系统剪贴板内容,使用callback异步回调。
1346 1347

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

1349
**参数:**
Z
zengyawen 已提交
1350

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

1355
**错误码:**
1356

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

1359
| 错误码ID | 错误信息 |
1360
| -------- | -------- |
1361
| 12900003 | Another copy or paste is in progress. |
1362

1363 1364 1365
**示例:**

```js
1366
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1367
systemPasteboard.getData((err, pasteData) => {
1368
    if (err) {
1369
        console.error('Failed to get PasteData. Cause: ' + err.message);
1370 1371
        return;
    }
1372
    let text = pasteData.getPrimaryText();
1373 1374
});
```
Z
zengyawen 已提交
1375

1376
### getData<sup>9+</sup>
Z
zengyawen 已提交
1377

1378
getData(): Promise&lt;PasteData&gt;
Z
zengyawen 已提交
1379

1380
读取系统剪贴板内容,使用Promise异步回调。
1381 1382

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

1384
**返回值:**
Z
zengyawen 已提交
1385

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

1390
**错误码:**
1391

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

1394
| 错误码ID | 错误信息 |
1395
| -------- | -------- |
1396
| 12900003 | Another copy or paste is in progress. |
1397

1398
**示例:**
Z
zengyawen 已提交
1399

1400
```js
1401
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1402
systemPasteboard.getData().then((pasteData) => {
1403
    let text = pasteData.getPrimaryText();
1404
}).catch((err) => {
1405 1406
    console.error('Failed to get PasteData. Cause: ' + err.message);
})
1407
```
Z
zengyawen 已提交
1408

1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425
### hasData<sup>9+</sup>

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

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

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

**参数:**

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

**示例:**

```js
1426
let systemPasteboard = pasteboard.getSystemPasteboard();
1427 1428
systemPasteboard.hasData((err, data) => {
    if (err) {
1429
        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1430 1431
        return;
    }
1432
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452
});
```

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

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

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

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

**返回值:**

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

**示例:**

```js
1453
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1454
systemPasteboard.hasData().then((data) => {
1455
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1456
}).catch((err) => {
1457
    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1458 1459
});
```
Z
zengyawen 已提交
1460

1461
### clear<sup>(deprecated)</sup>
Z
zengyawen 已提交
1462

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

1465
清空系统剪贴板内容,使用callback异步回调。
1466 1467 1468
> **说明:**
>
> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用[pasteboard.clearData](#cleardata9)替代。
1469 1470

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

1472
**参数:**
Z
zengyawen 已提交
1473

Z
zengyawen 已提交
1474 1475
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1476 1477 1478 1479 1480
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当成功清空时,err为undefined;否则为错误对象。 |

**示例:**

```js
Z
zzs110 已提交
1481 1482
systemPasteboard.clear((err, data) => {
    if (err) {
1483
        console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
1484
        return;
1485 1486 1487 1488
    }
    console.info('Succeeded in clearing the PasteData.');
});
```
Z
zengyawen 已提交
1489

1490
### clear<sup>(deprecated)</sup>
Z
zengyawen 已提交
1491

1492
clear(): Promise&lt;void&gt;
Z
zengyawen 已提交
1493

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

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

1501
**返回值:**
Z
zengyawen 已提交
1502

Z
zengyawen 已提交
1503 1504
| 类型 | 说明 |
| -------- | -------- |
1505
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zengyawen 已提交
1506

1507
**示例:**
Z
zengyawen 已提交
1508

1509
```js
Z
zzs110 已提交
1510
systemPasteboard.clear().then((data) => {
1511
    console.info('Succeeded in clearing the PasteData.');
Z
zzs110 已提交
1512
}).catch((err) => {
1513
    console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
1514
});
1515 1516
```

1517
### getPasteData<sup>(deprecated)</sup>
1518

1519
getPasteData( callback: AsyncCallback&lt;PasteData&gt;): void
1520

1521 1522 1523 1524
读取系统剪贴板内容,使用callback异步回调。
> **说明:**
>
> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9)替代。
1525 1526 1527 1528 1529 1530 1531

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

**参数:**

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

**示例:**

```js
1537 1538
let systemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getPasteData((err, pasteData) => {
1539 1540 1541
    if (err) {
        console.error('Failed to get PasteData. Cause: ' + err.message);
        return;
1542
    }
1543
    let text = pasteData.getPrimaryText();
1544 1545 1546
});
```

1547
### getPasteData<sup>(deprecated)</sup>
1548

1549
getPasteData(): Promise&lt;PasteData&gt;
1550

1551 1552 1553 1554
读取系统剪贴板内容,使用Promise异步回调。
> **说明:**
>
> 从 API Version 6 开始支持,从 API Version 9 开始废弃,建议使用[getData](#getdata9-1)替代。
1555 1556 1557 1558 1559

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

**返回值:**

1560 1561 1562 1563 1564 1565 1566
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[PasteData](#pastedata)&gt; | Promise对象,返回系统剪贴板数据。 |

**示例:**

```js
1567
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1568
systemPasteboard.getPasteData().then((pasteData) => {
1569
    let text = pasteData.getPrimaryText();
1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582
}).catch((err) => {
    console.error('Failed to get PasteData. Cause: ' + err.message);
})
```

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

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

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

1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

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

**示例:**

```js
systemPasteboard.hasPasteData((err, data) => {
    if (err) {
1597
        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1598 1599
        return;
    }
1600
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611
});
```

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

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

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

1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623
**系统能力:** SystemCapability.MiscServices.Pasteboard

**返回值:**

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

**示例:**

```js
Z
zzs110 已提交
1624
systemPasteboard.hasPasteData().then((data) => {
1625
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
1626
}).catch((err) => {
1627
    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638
});
```

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

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

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

1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

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

**示例:**

```js
1652 1653
let pasteData = pasteboard.createPlainTextData('content');
let systemPasteboard = pasteboard.getSystemPasteboard();
Z
zzs110 已提交
1654
systemPasteboard.setPasteData(pasteData, (err, data) => {
1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669
    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)替代。
1670

1671 1672 1673 1674
**系统能力:** SystemCapability.MiscServices.Pasteboard

**参数:**

Z
zzs110 已提交
1675 1676 1677
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| data | [PasteData](#pastedata) | 是 | PasteData对象。 |
1678 1679 1680

**返回值:**

1681 1682 1683 1684 1685 1686 1687
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

**示例:**

```js
1688 1689
let pasteData = pasteboard.createPlainTextData('content');
let systemPasteboard = pasteboard.getSystemPasteboard();
1690 1691 1692 1693
systemPasteboard.setPasteData(pasteData).then((data) => {
    console.info('Succeeded in setting PasteData.');
}).catch((err) => {
    console.error('Failed to set PasteData. Cause: ' + err.message);
1694
});
Z
zzs110 已提交
1695
```