js-apis-pasteboard.md 28.3 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 剪贴板


> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块


```
import pasteboard from '@ohos.pasteboard';
```


## 属性

18
**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Pasteboard。
Z
zengyawen 已提交
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| MAX_RECORD_NUM&nbsp;<sup>7+</sup> | number | 是 | 否 | 单个PasteData中所能包含的Record的数量上限。 |
| MIMETYPE_TEXT_HTML<sup>7+</sup> | string | 是 | 否 | HTML&nbsp;text文本的MIME类型定义。 |
| MIMETYPE_TEXT_WANT<sup>7+</sup> | string | 是 | 否 | Want的MIME类型定义。 |
| MIMETYPE_TEXT_PLAIN<sup>7+</sup> | string | 是 | 否 | Plain&nbsp;text文本的MIME类型定义。 |
| MIMETYPE_TEXT_URI<sup>7+</sup> | string | 是 | 否 | URI文本的MIME类型定义。 |


## pasteboard.createPlainTextData

createPlainTextData(text:string): PasteData

构建一个纯文本剪贴板内容对象。

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

Z
zengyawen 已提交
37 38
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
39 40 41
  | -------- | -------- | -------- | -------- |
  | text | string | 是 | 纯文本数据。 | 

Z
zengyawen 已提交
42 43
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
44 45 46
  | -------- | -------- |
  | [PasteData](#pastedata) | 包含此内容的剪贴板内容对象。 | 

Z
zengyawen 已提交
47 48
**示例**

Z
zengyawen 已提交
49 50 51 52 53 54 55 56 57 58 59
  ```
  var pasteData = pasteboard.createPlainTextData("content");
  ```


## pasteboard.createHtmlData<sup>7+</sup>

createHtmlData(htmlText:string): PasteData

构建一个html文本剪贴板内容对象。

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

Z
zengyawen 已提交
62 63
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
64 65 66
  | -------- | -------- | -------- | -------- |
  | htmlText | string | 是 | 待保存的HTML文本内容。 | 

Z
zengyawen 已提交
67 68
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
69 70 71
  | -------- | -------- |
  | [PasteData](#pastedata) | 包含此内容的剪贴板内容对象。 | 

Z
zengyawen 已提交
72 73
**示例**

Z
zengyawen 已提交
74 75 76 77 78 79 80 81 82 83 84 85
  ```
  var 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>";
  var pasteData = pasteboard.createHtmlData(html);
  ```


## pasteboard.createWantData<sup>7+</sup>

createWantData(want:Want): PasteData

构建一个want剪贴板内容对象。

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

Z
zengyawen 已提交
88 89
**参数**
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
90
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
91
  | want | [Want](js-apis-featureAbility.md#want) | 是 | 待保存的Want内容。 |
Z
zengyawen 已提交
92

Z
zengyawen 已提交
93 94
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
95 96 97
  | -------- | -------- |
  | [PasteData](#pastedata) | 包含此内容的剪贴板内容对象。 | 

Z
zengyawen 已提交
98 99
**示例**

Z
zengyawen 已提交
100 101
  ```
  var object = {
102 103
      bundleName: "com.example.aafwk.test",
      abilityName: "com.example.aafwk.test.TwoAbility"
Z
zengyawen 已提交
104 105 106 107 108 109 110 111 112 113 114
  };
  var pasteData = pasteboard.createWantData(object);
  ```


## pasteboard.createUriData<sup>7+</sup>

createUriData(uri:string): PasteData

构建一个URI剪贴板内容对象。

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

Z
zengyawen 已提交
117 118
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
119 120 121
  | -------- | -------- | -------- | -------- |
  | uri | string | 是 | 待保存的URI内容。 | 

Z
zengyawen 已提交
122 123
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
124 125 126
  | -------- | -------- |
  | [PasteData](#pastedata) | 包含此内容的剪贴板内容对象。 | 

Z
zengyawen 已提交
127 128
**示例**

Z
zengyawen 已提交
129
  ```
Z
zengyawen 已提交
130
  var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
131 132 133 134 135 136 137 138 139
  ```


## pasteboard.createPlainTextRecord<sup>7+</sup>

createPlainTextRecord(text:string): PasteDataRecord

创建一条文本类型的内容条目。

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

Z
zengyawen 已提交
142 143
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
144 145 146
  | -------- | -------- | -------- | -------- |
  | text | string | 是 | 纯文本内容。 | 

Z
zengyawen 已提交
147 148
**返回值**
  | 类型 | 说明 |
Z
zengyawen 已提交
149 150 151
  | -------- | -------- |
  | [PasteDataRecord](#pastedatarecord7) | 一条新建的纯文本内容条目。 |

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

Z
zengyawen 已提交
154 155 156 157 158 159 160 161 162 163 164
  ```
  var record = pasteboard.createPlainTextRecord("hello");
  ```


## pasteboard.createHtmlTextRecord<sup>7+</sup>

createHtmlTextRecord(htmlText:string): PasteDataRecord

创建一条HTML内容的条目。

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

Z
zengyawen 已提交
167 168
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
169 170 171
  | -------- | -------- | -------- | -------- |
  | htmlText | string | 是 | 文本内容。 | 

Z
zengyawen 已提交
172 173
**返回值**
  | 类型 | 说明 |
Z
zengyawen 已提交
174 175 176
  | -------- | -------- |
  | [PasteDataRecord](#pastedatarecord7) | 一条新建的HTML内容条目。 |

Z
zengyawen 已提交
177 178
**示例**

Z
zengyawen 已提交
179 180 181 182 183 184 185 186 187 188 189 190
  ```
  var 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>";
  var record = pasteboard.createHtmlTextRecord(html);
  ```


## pasteboard.createWantRecord<sup>7+</sup>

createWantRecord(want:Want): PasteDataRecord

创建一条Want内容条目。

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

Z
zengyawen 已提交
193 194
**参数**
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
195
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
196
  | want | [Want](js-apis-featureAbility.md#want) | 是 | Want类型数据。 |
Z
zengyawen 已提交
197

Z
zengyawen 已提交
198 199
**返回值**
  | 类型 | 说明 |
Z
zengyawen 已提交
200 201 202
  | -------- | -------- |
  | [PasteDataRecord](#pastedatarecord7) | 一条新建的Want内容条目 |

Z
zengyawen 已提交
203 204
**示例**

Z
zengyawen 已提交
205 206
  ```
  var object = {
207 208
      bundleName: "com.example.aafwk.test",
      abilityName: "com.example.aafwk.test.TwoAbility"
Z
zengyawen 已提交
209 210 211 212 213 214 215 216 217 218 219
  };
  var record = pasteboard.createWantRecord(object);
  ```


## pasteboard.createUriRecord<sup>7+</sup>

createUriRecord(uri:string): PasteDataRecord

创建一条URI内容的条目。

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

Z
zengyawen 已提交
222 223
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
224 225 226
  | -------- | -------- | -------- | -------- |
  | uri | string | 是 | URI内容。 | 

Z
zengyawen 已提交
227 228
**返回值**
  | 类型 | 说明 |
Z
zengyawen 已提交
229 230 231
  | -------- | -------- |
  | [PasteDataRecord](#pastedatarecord7) | 一条新建的URI内容条目。 |

Z
zengyawen 已提交
232 233
**示例**

Z
zengyawen 已提交
234
  ```
Z
zengyawen 已提交
235
  var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
236 237 238 239 240 241 242
  ```


## PasteDataProperty<sup>7+</sup>

定义了剪贴板中所有内容条目的属性,包含时间戳、数据类型以及一些附加数据等。

243
**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Pasteboard。
Z
zengyawen 已提交
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260

  | 名称 | 参数类型 | 可读 | 可写 | 说明 | 
| -------- | -------- | -------- | -------- | -------- |
| additions | {[key:&nbsp;string]:&nbsp;object} | 是 | 是 | 设置的其他附加属性数据。 | 
| mimeTypes | Array&lt;string&gt; | 是 | 否 | 剪贴板内容条目的数据类型,&nbsp;非重复的类型列表。 | 
| tag | string | 是 | 是 | 用户自定义标签。 | 
| timestamp | number | 是 | 否 | 剪贴板数据的写入时间戳(毫秒)。 | 
| localOnly | boolean | 是 | 是 | 配置剪贴板内容的“仅在本地”标志位。<br/>-&nbsp;默认情况为true。<br/>-&nbsp;配置为true时,表示内容仅在本地,不会在设备之间传递。<br/>-&nbsp;配置为false时,表示内容将在设备间传递。 | 


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

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


### 属性

261
**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Pasteboard。
Z
zengyawen 已提交
262 263 264 265

| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| htmlText<sup>7+</sup> | string | 是 | 否 | HTML文本内容。 |
Z
zengyawen 已提交
266
| want<sup>7+</sup> | [Want](js-apis-featureAbility.md#want) | 是 | 否 | Want文本内容。 |
Z
zengyawen 已提交
267 268 269 270 271 272 273 274 275 276 277
| mimeType<sup>7+</sup> | string | 是 | 否 | 数据类型。 |
| plainText<sup>7+</sup> | string | 是 | 否 | 文本内容。 |
| uri<sup>7+</sup> | string | 是 | 否 | URI内容。 |


### convertToText<sup>7+</sup>

convertToText(): Promise&lt;string&gt;

实例方法,将一个PasteData中的内容强制转换为文本内容,并使用Promise异步方式返回结果。

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

Z
zengyawen 已提交
280 281
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
282 283 284
  | -------- | -------- |
  | Promise&lt;void&gt; | 异步回调函数,调用成功则返回强制转换的文本内容,调用失败则返回error信息。 | 

Z
zengyawen 已提交
285 286
**示例**

Z
zengyawen 已提交
287
  ```
Z
zengyawen 已提交
288
  var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
289 290 291 292 293 294 295 296 297 298 299 300 301 302
  record.convertToText().then((data) => {
      console.info('convertToText success data : ' + JSON.stringify(data));
  }).catch((error) => { 
      console.error('convertToText failed because ' + JSON.stringify(error));
  });
  ```


### convertToText<sup>7+</sup>

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

实例方法,将一个PasteData中的内容强制转换为文本内容,并使用callback方式返回结果。

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

Z
zengyawen 已提交
305 306
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
307 308 309
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;string&gt; | 是 | 回调函数,调用成功则返回强制转换的文本内容,调用失败则返回error信息。 | 

Z
zengyawen 已提交
310 311
**示例**

Z
zengyawen 已提交
312
  ```
Z
zengyawen 已提交
313
  var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
314 315 316 317 318 319 320 321 322 323 324 325 326 327
  record.convertToText((err, data) => {    
      if (err) {        
          console.error('convertToText failed because ' + JSON.stringify(err));        
          return;   
        }
      console.info('convertToText success data : ' + JSON.stringify(data));
  });
  ```


## PasteData

在调用PasteData的接口前,需要先获取一个PasteData对象。

328
**系统能力**: SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
329 330 331 332 333 334 335 336 337 338


### getPrimaryText


getPrimaryText(): string


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

339
**系统能力**: SystemCapability.MiscServices.Pasteboard
Z
zengyawen 已提交
340 341


Z
zengyawen 已提交
342 343
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
344 345 346
  | -------- | -------- |
  | string | 纯文本内容。 | 

Z
zengyawen 已提交
347 348
**示例**

Z
zengyawen 已提交
349 350 351 352 353 354 355 356 357 358 359 360
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var plainText = pasteData.getPrimaryText();
  ```


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

getPrimaryHtml(): string

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

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

Z
zengyawen 已提交
363 364
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
365 366 367
  | -------- | -------- |
  | string | HTML文本数据。 | 

Z
zengyawen 已提交
368 369
**示例**

Z
zengyawen 已提交
370 371 372 373 374 375 376 377 378 379 380 381 382
  ```
  var 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>";
  var pasteData = pasteboard.createHtmlData(html);
  var htmlText = pasteData.getPrimaryHtml();
  ```


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

getPrimaryWant(): Want

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

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

Z
zengyawen 已提交
385 386
**返回值**
  | 类型 | 说明 |
Z
zengyawen 已提交
387
  | -------- | -------- |
Z
zengyawen 已提交
388
  | [Want](js-apis-featureAbility.md#want) | Want对象内容。 |
Z
zengyawen 已提交
389

Z
zengyawen 已提交
390 391
**示例**

Z
zengyawen 已提交
392 393
  ```
  var object = { 
394 395
      bundleName: "com.example.aafwk.test",    
      abilityName: "com.example.aafwk.test.TwoAbility"
Z
zengyawen 已提交
396 397 398 399 400 401 402 403 404 405 406 407
  };
  var pasteData = pasteboard.createWantData(object);
  var want = pasteData.getPrimaryWant();
  ```


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

getPrimaryUri(): string

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

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

Z
zengyawen 已提交
410 411
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
412 413 414
  | -------- | -------- |
  | string | URI文本内容。 | 

Z
zengyawen 已提交
415 416
**示例**

Z
zengyawen 已提交
417
  ```
Z
zengyawen 已提交
418
  var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
419 420 421 422 423 424 425 426 427 428 429 430
  var uri = pasteData.getPrimaryUri();
  ```


### addTextRecord<sup>7+</sup>

addTextRecord(text: string): void

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

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

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

Z
zengyawen 已提交
433 434
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
435 436 437
  | -------- | -------- | -------- | -------- |
  | text | string | 是 | 纯文本内容。 | 

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

Z
zengyawen 已提交
440 441 442 443 444 445 446 447 448 449 450 451 452 453
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  pasteData.addTextRecord("good");
  ```


### addHtmlRecord<sup>7+</sup>

addHtmlRecord(htmlText: string): void

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

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

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

Z
zengyawen 已提交
456 457
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
458 459 460
  | -------- | -------- | -------- | -------- |
  | htmlText | string | 是 | HTML格式的文本内容。 | 

Z
zengyawen 已提交
461 462
**示例**

Z
zengyawen 已提交
463 464 465 466 467 468 469 470 471
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var 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>";
  pasteData.addHtmlRecord(html);
  ```


### addWantRecord<sup>7+</sup>

Z
zengyawen 已提交
472
addWantRecord(want: Want): void
Z
zengyawen 已提交
473

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

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

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

Z
zengyawen 已提交
480 481
**参数**
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
482
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
483
  | want | [Want](js-apis-featureAbility.md#want) | 是 | Want对象内容。 |
Z
zengyawen 已提交
484

Z
zengyawen 已提交
485 486
**示例**

Z
zengyawen 已提交
487 488 489
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var object = { 
490 491
      bundleName: "com.example.aafwk.test",    
      abilityName: "com.example.aafwk.test.TwoAbility"
Z
zengyawen 已提交
492 493 494 495 496 497 498 499 500 501 502 503 504
  };
  pasteData.addWantRecord(object);
  ```


### addUriRecord<sup>7+</sup>

addUriRecord(uri: string): void

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

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

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

Z
zengyawen 已提交
507 508
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
509 510 511
  | -------- | -------- | -------- | -------- |
  | uri | string | 是 | URI文本内容。 | 

Z
zengyawen 已提交
512 513
**示例**

Z
zengyawen 已提交
514 515
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
Z
zengyawen 已提交
516
  pasteData.addUriRecord("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
517 518 519 520 521 522 523 524 525 526 527
  ```


### addRecord<sup>7+</sup>

addRecord(record: PasteDataRecord): void

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

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

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

Z
zengyawen 已提交
530 531
**参数**
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
532 533 534
  | -------- | -------- | -------- | -------- |
  | record | [PasteDataRecord](#pastedatarecord7) | 是 | 待添加的条目。 |

Z
zengyawen 已提交
535 536
**示例**

Z
zengyawen 已提交
537
  ```
Z
zengyawen 已提交
538
  var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
539 540 541 542 543 544 545 546 547 548 549 550 551 552
  var textRecord = pasteboard.createPlainTextRecord("hello");
  var 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>";
  var htmlRecord = pasteboard.createHtmlTextRecord(html);
  pasteData.addRecord(textRecord);
  pasteData.addRecord(htmlRecord);
  ```


### getMimeTypes<sup>7+</sup>

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

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

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

Z
zengyawen 已提交
555 556
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
557 558 559
  | -------- | -------- |
  | Array&lt;string&gt; | 非重复的类型列表。 | 

Z
zengyawen 已提交
560 561
**示例**

Z
zengyawen 已提交
562 563 564 565 566 567 568 569 570 571 572 573
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var types = pasteData.getMimeTypes();
  ```


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

getPrimaryMimeType(): string

获取首个条目的数据类型。

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

Z
zengyawen 已提交
576 577
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
578 579 580
  | -------- | -------- |
  | string | 首个条目的数据类型。 | 

Z
zengyawen 已提交
581 582
**示例**

Z
zengyawen 已提交
583 584 585 586 587 588 589 590 591 592 593 594
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var type = pasteData.getPrimaryMimeType();
  ```


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

getProperty(): PasteDataProperty

获取属性描述对象。

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

Z
zengyawen 已提交
597 598
**返回值**
  | 类型 | 说明 |
Z
zengyawen 已提交
599 600 601
  | -------- | -------- |
  | [PasteDataProperty](#pastedataproperty7) | 属性描述对象。 |

Z
zengyawen 已提交
602 603
**示例**

Z
zengyawen 已提交
604 605 606 607 608 609 610 611 612 613 614 615
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var property = pasteData.getProperty();
  ```


### getRecordAt<sup>7+</sup>

getRecordAt(index: number): PasteDataRecord

获取指定下标的条目。

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

Z
zengyawen 已提交
618 619
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
620 621 622
  | -------- | -------- | -------- | -------- |
  | index | number | 是 | 指定条目的下标。 | 

Z
zengyawen 已提交
623 624
**返回值**
  | 类型 | 说明 |
Z
zengyawen 已提交
625 626 627
  | -------- | -------- |
  | [PasteDataRecord](#pastedatarecord7) | 指定下标的条目。 |

Z
zengyawen 已提交
628 629
**示例**

Z
zengyawen 已提交
630 631 632 633 634 635 636 637 638 639 640 641
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var record = pasteData.getRecordAt(0);
  ```


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

getRecordCount(): number

获取剪贴板中条目的个数。

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

Z
zengyawen 已提交
644 645
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
646 647 648
  | -------- | -------- |
  | number | 条目的个数。 | 

Z
zengyawen 已提交
649 650
**示例**

Z
zengyawen 已提交
651 652 653 654 655 656 657 658 659 660 661 662
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var count = pasteData.getRecordCount();
  ```


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

getTag(): string

获取用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。

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

Z
zengyawen 已提交
665 666
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
667 668 669
  | -------- | -------- |
  | string | 获取用户自定义的标签内容,如果没有设置用户自定义的标签内容将返回空。 | 

Z
zengyawen 已提交
670 671
**示例**

Z
zengyawen 已提交
672 673 674 675 676 677 678 679 680 681 682 683
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var tag = pasteData.getTag();
  ```


### hasMimeType<sup>7+</sup>

hasMimeType(mimeType: string): boolean

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

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

Z
zengyawen 已提交
686 687
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
688 689 690
  | -------- | -------- | -------- | -------- |
  | mimeType | string | 是 | 待查询的数据类型。 | 

Z
zengyawen 已提交
691 692
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
693 694 695
  | -------- | -------- |
  | boolean | 有指定的数据类型返回true,否则返回false。 | 

Z
zengyawen 已提交
696 697
**示例**

Z
zengyawen 已提交
698 699 700 701 702 703 704 705 706 707 708 709
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var hasType = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);
  ```


### removeRecordAt<sup>7+</sup>

removeRecordAt(index: number): boolean

移除指定下标的条目。

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

Z
zengyawen 已提交
712 713
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
714 715 716
  | -------- | -------- | -------- | -------- |
  | index | number | 是 | 指定的下标。 | 

Z
zengyawen 已提交
717 718
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
719 720 721
  | -------- | -------- |
  | boolean | 成功移除返回true,失败返回false。 | 

Z
zengyawen 已提交
722 723
**示例**

Z
zengyawen 已提交
724 725 726 727 728 729 730 731 732 733 734 735
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
  var isRemove = pasteData.removeRecordAt(0);
  ```


### replaceRecordAt<sup>7+</sup>

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

替换指定下标的条目。

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

Z
zengyawen 已提交
738 739
**参数**
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
740 741 742 743
  | -------- | -------- | -------- | -------- |
  | index | number | 是 | 指定的下标。 |
  | record | [PasteDataRecord](#pastedatarecord7) | 是 | 替换后的条目。 |

Z
zengyawen 已提交
744 745
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
746 747 748
  | -------- | -------- |
  | boolean | 成功替换返回true,失败返回false。 | 

Z
zengyawen 已提交
749 750
**示例**

Z
zengyawen 已提交
751 752
  ```
  var pasteData = pasteboard.createPlainTextData("hello");
Z
zengyawen 已提交
753
  var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
Z
zengyawen 已提交
754 755 756 757 758 759 760 761 762 763
  var isReplace = pasteData.replaceRecordAt(0, record);
  ```


## pasteboard.getSystemPasteboard

getSystemPasteboard(): SystemPasteboard

获取系统剪切板。

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

Z
zengyawen 已提交
766 767
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
768 769 770
  | -------- | -------- |
  | [SystemPasteboard](#systempasteboard) | 系统剪切板对象。 | 

Z
zengyawen 已提交
771 772
**示例**

Z
zengyawen 已提交
773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792
  ```
  var systemPasteboard = pasteboard.getSystemPasteboard();
  ```


## SystemPasteboard

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

```
var systemPasteboard = pasteboard.getSystemPasteboard();
```


### setPasteData

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

将数据写入系统剪切板,并使用callback方式返回结果。

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

Z
zengyawen 已提交
795 796
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
797 798 799 800
  | -------- | -------- | -------- | -------- |
  | pasteData | [PasteData](#pastedata) | 是 | PasteData对象。 | 
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,表示是否成功将数据写入系统剪切板。 | 

Z
zengyawen 已提交
801 802
**示例**

Z
zengyawen 已提交
803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821
  ```
  var pasteData = pasteboard.createPlainTextData("content");
  var systemPasteboard = pasteboard.getSystemPasteboard();
  systemPasteboard.setPasteData(pasteData, (error, data) => { 
      if (error) {
          console.error('Failed to setPasteData. Cause: ' + error.message);
          return;
      }
      console.info('setPasteData successfully.');
  });
  ```


### setPasteData

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

将数据写入系统剪切板,并使用Promise异步方式返回结果。

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

Z
zengyawen 已提交
824 825
**参数**
  | 参数名 | 类型 | 说明 | 
Z
zengyawen 已提交
826 827 828
  | -------- | -------- | -------- |
  | pasteData | [PasteData](#pastedata) | PasteData对象。 | 

Z
zengyawen 已提交
829 830
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
831 832 833
  | -------- | -------- |
  | Promise&lt;void&gt; | 异步回调函数,表示是否成功将数据写入系统剪切板。 | 

Z
zengyawen 已提交
834 835
**示例**

Z
zengyawen 已提交
836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852
  ```
  var pasteData = pasteboard.createPlainTextData("content");
  var systemPasteboard = pasteboard.getSystemPasteboard();
  systemPasteboard.setPasteData(pasteData).then((data) => {
      console.info('setPasteData success.');
  }).catch((error) => {
      console.error('Failed to setPasteData. Cause: ' + error.message);
  });
  ```


### getPasteData

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

读取系统剪切板内容,并使用callback方式返回结果。

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

Z
zengyawen 已提交
855 856
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
857 858 859
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;[PasteData](#pastedata)&gt; | 是 | 回调函数,返回系统剪切板数据。 | 

Z
zengyawen 已提交
860 861
**示例**

Z
zengyawen 已提交
862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879
  ```
  var systemPasteboard = pasteboard.getSystemPasteboard();
  systemPasteboard.getPasteData((error, pasteData) => {  
      if (error) {
          console.error('Failed to getPasteData. Cause: ' + error.message);
          return;
      }
      var text = pasteData.getPrimaryText();
  });
  ```


### getPasteData

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

读取系统剪切板内容,并使用Promise异步方式返回结果。

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

Z
zengyawen 已提交
882 883
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
884 885 886
  | -------- | -------- |
  | Promise&lt;[PasteData](#pastedata)&gt; | 异步回调函数,调返回系统剪切板数据。 | 

Z
zengyawen 已提交
887 888
**示例**

Z
zengyawen 已提交
889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904
  ```
  var systemPasteboard = pasteboard.getSystemPasteboard();
  systemPasteboard.getPasteData().then((pasteData) => { 
      var text = pasteData.getPrimaryText();
  }).catch((error) => {
      console.error('Failed to getPasteData. Cause: ' + error.message);
  })
  ```


### on('update')<sup>7+</sup>

on(type:  'update', callback: () =&gt;void ): void

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

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

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

Z
zengyawen 已提交
913 914
**示例**

Z
zengyawen 已提交
915 916 917 918 919 920 921 922 923 924 925 926 927 928 929
  ```
  var systemPasteboard = pasteboard.getSystemPasteboard();
  var listener = ()=>{
      console.info('The system pasteboard has changed');
  };
  systemPasteboard.on('update', listener);
  ```


### off('update')<sup>7+</sup>

off(type:  'update', callback?: () =&gt;void ): void

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

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

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

Z
zengyawen 已提交
938 939
**示例**

Z
zengyawen 已提交
940 941 942 943 944 945 946 947 948 949 950
  ```
  systemPasteboard.off('update', listener);
  ```


### hasPasteData<sup>7+</sup>

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

判断系统剪切板中是否有内容,并使用callback异步方式返回结果。

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

Z
zengyawen 已提交
953 954
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
955 956 957
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 返回为true表示系统剪切板中有内容,返回false表示系统剪切板中没有内容。 | 

Z
zengyawen 已提交
958 959
**示例**

Z
zengyawen 已提交
960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976
  ```
  systemPasteboard.hasPasteData((err, data) => {
      if (err) {
          console.error('failed to hasPasteData because ' + JSON.stringify(err));
          return;
      }
      console.info('success hasPasteData : ' + JSON.stringify(data));
  });
  ```


### hasPasteData<sup>7+</sup>

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

判断系统剪切板中是否有内容,并使用Promise异步方式返回结果。

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

Z
zengyawen 已提交
979 980
**返回值**
  | 类型 | 说明 | 
Z
zengyawen 已提交
981 982 983
  | -------- | -------- |
  | Promise&lt;boolean&gt; | 返回为true表示系统剪切板中有内容,返回false表示系统剪切板中没有内容。 | 

Z
zengyawen 已提交
984 985
**示例**

Z
zengyawen 已提交
986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
  ```
  systemPasteboard.hasPasteData().then((data) => { 
      console.info('success hasPasteData : ' + JSON.stringify(data));
  }).catch((error) => {
      console.error('failed to hasPasteData because ' + JSON.stringify(error));
  });
  ```


### clear<sup>7+</sup>

clear(callback:  AsyncCallback&lt;void&gt;): void

清空系统剪切板内容,并使用callback异步方式返回结果。

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

Z
zengyawen 已提交
1003 1004
**参数**
  | 参数名 | 类型 | 必填 | 说明 | 
Z
zengyawen 已提交
1005 1006 1007
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,表示是否成功清空系统剪切板内容。 | 

Z
zengyawen 已提交
1008 1009
**示例**

Z
zengyawen 已提交
1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026
  ```
  systemPasteboard.clear((err, data) => { 
      if (err) {        
          console.error('failed to clear because ' + JSON.stringify(err));        
          return;    
      }
      console.info('success clear');
  });
  ```


### clear<sup>7+</sup>

clear():  Promise&lt;void&gt;

清空系统剪切板内容,并使用Promise异步方式返回结果。

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

Z
zengyawen 已提交
1029
**返回值**
Z
zengyawen 已提交
1030

Z
zengyawen 已提交
1031
  | 类型 | 说明 | 
Z
zengyawen 已提交
1032 1033 1034
  | -------- | -------- |
  | Promise&lt;void&gt; | 异步回调函数,表示是否成功清空系统剪切板内容。 | 

Z
zengyawen 已提交
1035 1036
**示例**

Z
zengyawen 已提交
1037 1038 1039 1040 1041 1042 1043
  ```
  systemPasteboard.clear().then((data) => { 
      console.info('success clear');
  }).catch((error) => {    
      console.error('failed to clear because ' + JSON.stringify(error));
  });
  ```