openharmony 鸿蒙 js-apis-pasteboard

2025-06-12 浏览 (1)

@ohos.pasteboard (Pasteboard)

The Pasteboard module provides the copy and paste support for the system pasteboard. You can use the APIs of this module to operate pasteboard content of the plain text, HTML, URI, Want, pixel map, and other types.

NOTE

The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import { pasteboard } from '@kit.BasicServicesKit';

Constants

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

NameTypeValueDescription
MAX_RECORD_NUM7+number-Maximum number of records in a PasteData object. In versions earlier than API version 10, the value is 512, indicating that no more records can be added once the number of records reaches 512.
Since API version 10, no limit is placed on the number of records in a PasteData object.
MIMETYPE_TEXT_HTML7+string'text/html'MIME type of the HTML content.
MIMETYPE_TEXT_WANT7+string'text/want'MIME type of the Want content.
MIMETYPE_TEXT_PLAIN7+string'text/plain'MIME type of the plain text content.
MIMETYPE_TEXT_URI7+string'text/uri'MIME type of the URI content.
MIMETYPE_PIXELMAP9+string'pixelMap'MIME type of the pixel map.

ValueType9+

type ValueType = string|image.PixelMap|Want|ArrayBuffer

Enumerates the value types.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

TypeDescription
stringThe value is a string.
image.PixelMapThe value is of the image.PixelMap type.
WantThe value is of the Want type.
ArrayBufferThe value is of the ArrayBuffer type.

pasteboard.createData9+

createData(mimeType: string, value: ValueType): PasteData

Creates a PasteData object of the specified type.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
mimeTypestringYesMIME type of custom data. The value can a predefined MIME type listed in Constants, including HTML, WANT, plain text, URI, and pixel map, or a custom MIME type. The value of mimeType cannot exceed 1024 bytes.
valueValueTypeYesContent of custom data.

Return value

TypeDescription
PasteDataPasteData object.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.

Example 1

let dataXml = new ArrayBuffer(256);
let pasteData: pasteboard.PasteData = pasteboard.createData('app/xml', dataXml);

Example 2

let dataText = 'hello';
let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, dataText);

pasteboard.createData14+

createData(data: Record<string, ValueType>): PasteData

Creates a PasteData object that contains multiple types of data.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
dataRecord<string, ValueType>YesThe key of Record can be the MIME type corresponding to the pasteboard data, including HTML, WANT, plain text, URI, and PixelMap defined in Constants. Alternatively, the key could be a custom MIME type, whose parameter, the length of mimeType, cannot exceed 1024 bytes.
The value of Record is the data corresponding to the MIME type specified in the key.
The first MIME type specified by the key-value in Record is used as the default MIME type of the first PasteDataRecord in the PasteData object. Data of non-default types can be read only by using the getData API.

Return value

TypeDescription
PasteDataPasteData object.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.

Example 1

let pasteData: pasteboard.PasteData = pasteboard.createData({
    'text/plain': 'hello',
    'app/xml': new ArrayBuffer(256),
});

Example 2

let record: Record<string, pasteboard.ValueType> = {};
record[pasteboard.MIMETYPE_TEXT_PLAIN] = 'hello';
record[pasteboard.MIMETYPE_TEXT_URI] = 'dataability:///com.example.myapplication1/user.txt';
let pasteData: pasteboard.PasteData = pasteboard.createData(record);

pasteboard.createRecord9+

createRecord(mimeType: string, value: ValueType):PasteDataRecord

Creates a PasteDataRecord object of the specified type.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
mimeTypestringYesMIME type of custom data. The value can a predefined MIME type listed in Constants, including HTML, WANT, plain text, URI, and pixel map, or a custom MIME type. The value of mimeType cannot exceed 1024 bytes.
valueValueTypeYesData content of the specified type.

Return value

TypeDescription
PasteDataRecordA new paste data record of a specified type.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.

Example 1

let dataXml = new ArrayBuffer(256);
let pasteDataRecord: pasteboard.PasteDataRecord = pasteboard.createRecord('app/xml', dataXml);

Example 2

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'file://com.example.myapplication1/data/storage/el2/base/files/file.txt');
pasteData.replaceRecord(0, record);

pasteboard.getSystemPasteboard

getSystemPasteboard(): SystemPasteboard

Obtains this SystemPasteboard object.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
SystemPasteboardSystemPasteboard object.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();

ShareOption9+

Enumerates the pasteable ranges of pasteboard data.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

NameValueDescription
INAPP0Only intra-application pasting is allowed.
LOCALDEVICE1Paste is allowed in any application.
CROSSDEVICE(deprecated)2Paste is allowed in any application across devices.
This API is deprecated since API version 12 without any alternative API or method.

pasteboard.createHtmlData(deprecated)

createHtmlData(htmlText: string): PasteData

Creates a PasteData object of the HTML type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.createData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
htmlTextstringYesHTML content.

Return value

TypeDescription
PasteDataPasteData object.

Example

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.PasteData = pasteboard.createHtmlData(html);

pasteboard.createWantData(deprecated)

createWantData(want: Want): PasteData

Creates a PasteData object of the Want type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.createData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
wantWantYesWant content.

Return value

TypeDescription
PasteDataPasteData object.

Example

import { Want } from '@kit.AbilityKit';

let object: Want = {
    bundleName: "com.example.aafwk.test",
    abilityName: "com.example.aafwk.test.TwoAbility"
};
let pasteData: pasteboard.PasteData = pasteboard.createWantData(object);

pasteboard.createPlainTextData(deprecated)

createPlainTextData(text: string): PasteData

Creates a PasteData object of the plain text type.

NOTE

This API is supported since API version 6 and deprecated since API version 9. You are advised to use pasteboard.createData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
textstringYesPlain text.

Return value

TypeDescription
PasteDataPasteData object.

Example

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');

pasteboard.createUriData(deprecated)

createUriData(uri: string): PasteData

Creates a PasteData object of the URI type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.createData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
uristringYesURI content.

Return value

TypeDescription
PasteDataPasteData object.

Example

let pasteData: pasteboard.PasteData = pasteboard.createUriData('dataability:///com.example.myapplication1/user.txt');

pasteboard.createHtmlTextRecord(deprecated)

createHtmlTextRecord(htmlText: string): PasteDataRecord

Creates a PasteDataRecord object of the HTML text type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.createRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
htmlTextstringYesHTML content.

Return value

TypeDescription
PasteDataRecordPasteDataRecord object of the HTML text type.

Example

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.PasteDataRecord = pasteboard.createHtmlTextRecord(html);

pasteboard.createWantRecord(deprecated)

createWantRecord(want: Want): PasteDataRecord

Creates a PasteDataRecord object of the Want type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.createRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
wantWantYesWant content.

Return value

TypeDescription
PasteDataRecordNew PasteDataRecord object of the Want type.

Example

import { Want } from '@kit.AbilityKit';

let object: Want = {
    bundleName: "com.example.aafwk.test",
    abilityName: "com.example.aafwk.test.TwoAbility"
};
let record: pasteboard.PasteDataRecord = pasteboard.createWantRecord(object);

pasteboard.createPlainTextRecord(deprecated)

createPlainTextRecord(text: string): PasteDataRecord

Creates a PasteDataRecord object of the plain text type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.createRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
textstringYesPlain text.

Return value

TypeDescription
PasteDataRecordNew PasteDataRecord object of the plain text type.

Example

let record: pasteboard.PasteDataRecord = pasteboard.createPlainTextRecord('hello');

pasteboard.createUriRecord(deprecated)

createUriRecord(uri: string): PasteDataRecord

Creates a PasteDataRecord object of the URI type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.createRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
uristringYesURI content.

Return value

TypeDescription
PasteDataRecordNew PasteDataRecord object of the URI type.

Example

let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');

PasteDataProperty7+

Defines the properties of all data records on the pasteboard, including the timestamp, data type, pasteable range, and additional data. The defined properties can be applied to the pasteboard only with the setProperty method.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

NameTypeReadableWritableDescription
additions7+{[key:string]:object}YesYesAdditional data. It does not allow for dynamic adding of attributes. Attributes can be added only by re-assigning values. For details, see the example of setProperty.
mimeTypes7+Array<string>YesNoNon-repeating data types of the data records on the pasteboard.
tag7+stringYesYesCustom tag.
timestamp7+numberYesNoTimestamp when data is written to the pasteboard (unit: ms).
localOnly7+booleanYesYesWhether the pasteboard content is for local access only. The default value is false. The value will be overwritten by the value of the shareOption attribute. You are advised to use the ShareOption attribute instead.
shareOption9+ShareOptionYesYesPasteable ranges of pasteboard data.

FileConflictOptions15+

Defines options for file copy conflicts.

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.MiscServices.Pasteboard

NameValueDescription
OVERWRITE0Overwrites the file with the same name in the destination path.
SKIP1Skips the file with the same name in the destination path. If SKIP is set, the copied data of the skipped file is not pasted to the application.

ProgressIndicator15+

Defines options for the progress indicator. You can choose whether to use the default progress indicator.

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.MiscServices.Pasteboard

NameValueDescription
NONE0The default progress indicator is not used.
DEFAULT1The default progress indicator is used.

ProgressInfo15+

Defines the progress information. This information is reported only when ProgressIndicator is set to NONE.

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.MiscServices.Pasteboard

NameTypeReadableWritableDescription
progressnumberYesNoIf the progress indicator provided by the system is not used, the system reports the progress percentage of the copy-and-paste task.

ProgressListener15+

type ProgressListener = (progress: ProgressInfo) => void

Defines a listener for progress data changes. If the default progress indicator is not used, you can set this API to obtain the paste progress.

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.MiscServices.Pasteboard

NameTypeMandatoryDescription
progressProgressInfoYesDefines the progress information. This information is reported only when ProgressIndicator is set to NONE.

ProgressSignal15+

Defines a function for canceling the paste task. This parameter is valid only when ProgressIndicator is set to NONE.

System capability: SystemCapability.MiscServices.Pasteboard

cancel

cancel(): void

Cancels an ongoing copy-and-paste task.

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.MiscServices.Pasteboard

Example

import { BusinessError, pasteboard } from '@kit.BasicServicesKit';
@Entry
@Component
struct PasteboardTest {
 build() {
   RelativeContainer() {
     Column() {
       Column() {
         Button("Copy txt")
           .onClick(async ()=>{
              let text = "test";
              let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, text);
              let systemPasteboard = pasteboard.getSystemPasteboard();
        	  await systemPasteboard.setData(pasteData);
              let signal = new pasteboard.ProgressSignal;
              let ProgressListener = (progress: pasteboard.ProgressInfo) => {
    		    console.log('progressListener success, progress:' + progress.progress);
                signal.cancel();
              }
              let params: pasteboard.GetDataParams = {
                destUri: '/data/storage/el2/base/haps/entry/files/dstFile.txt',
                fileConflictOptions: pasteboard.FileConflictOptions.OVERWRITE,
                progressIndicator: pasteboard.ProgressIndicator.DEFAULT,
                progressListener: ProgressListener
              };
              systemPasteboard.getDataWithProgress(params).then((pasteData: pasteboard.PasteData) => {
                console.error('getDataWithProgress succ');
              }).catch((err: BusinessError) => {
                console.error('Failed to get PasteData. Cause: ' + err.message);
              })
          })
        }
      }
    }
  }
}

GetDataParams15+

Obtains parameters when an application uses the file copy capability provided by the pasteboard, including the destination path, file conflict options, and progress indicator types.

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.MiscServices.Pasteboard

NameTypeMandatoryDescription
destUristringNoDestination path for copying files. If file processing is not supported, this parameter is not required. If the application involves complex file processing policies or needs to distinguish file multipathing storage, you are advised not to set this parameter but let the application copies files by itself.
fileConflictOptionsFileConflictOptionsNoFile conflict options for a copy-and-paste task. The default value is OVERWRITE.
progressIndicatorProgressIndicatorYesProgress indicator options. You can choose whether to use the default progress indicator.
progressListenerProgressListenerNoListener for progress data changes. If the default progress indicator is not used, you can set this parameter to obtain the paste progress.
progressSignalProgressSignalNoFunction for canceling the paste task. This parameter is valid only when ProgressIndicator is set to NONE.

PasteDataRecord7+

Provides PasteDataRecord APIs. A PasteDataRecord is an abstract definition of the content on the pasteboard. The pasteboard content consists of one or more plain text, HTML, URI, or Want records.

Attributes

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

NameTypeReadableWritableDescription
htmlText7+stringYesNoHTML content.
want7+WantYesNoWant content.
mimeType7+stringYesNoDefault data type.
plainText7+stringYesNoPlain text.
uri7+stringYesNoURI content.
pixelMap9+image.PixelMapYesNoPixel map.
data9+{[mimeType: string]: ArrayBuffer}YesNoContent of custom data.

toPlainText9+

toPlainText(): string

Forcibly converts HTML, plain, and URI content in a PasteDataRecord to the plain text.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
stringPlain text.

Example

let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, '<html>hello<html>');
let text: string = record.toPlainText();
console.info(`Succeeded in converting to text. Text: ${text}`);

addEntry14+

addEntry(type: string, value: ValueType): void

Adds custom data of an extra type to PasteDataRecord. The MIME type added using this method is not the default type of Record. You can only use the getData API to read the corresponding data.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
typestringYesMIME type of custom data. The value can a predefined MIME type listed in Constants, including HTML, WANT, plain text, URI, and pixel map, or a custom MIME type. The value of mimeType cannot exceed 1024 bytes.
valueValueTypeYesContent of custom data.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.

Example

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.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);

getValidTypes14+

getValidTypes(types: Array<string>): Array<string>

Obtains the intersection of the input MIME type and the MIME type of the pasteboard data.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
typesArray<string>YesList of the MIME types.

Return value

TypeDescription
Array<string>Intersection of the input MIME type and the MIME type of the pasteboard data obtained.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.

Example

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.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
let types: string[] = record.getValidTypes([
    pasteboard.MIMETYPE_TEXT_PLAIN,
    pasteboard.MIMETYPE_TEXT_HTML,
    pasteboard.MIMETYPE_TEXT_URI,
    pasteboard.MIMETYPE_TEXT_WANT,
    pasteboard.MIMETYPE_PIXELMAP
]);

getData14+

getData(type: string): Promise<ValueType>

Obtains custom data of the specified MIME type from PasteDataRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
typestringYesMIME type.

Return value

TypeDescription
Promise<ValueType>Promise used to return the custom data of the specified MIME type.
If PasteDataRecord contains data of multiple MIME types, the non-PasteDataRecord data of the default MIME type can be obtained only through this API.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.

Example

import { BusinessError } from '@kit.BasicServicesKit';

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.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
record.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
record.addEntry(pasteboard.MIMETYPE_TEXT_HTML, html);
record.getData(pasteboard.MIMETYPE_TEXT_PLAIN).then((value: pasteboard.ValueType) => {
    let textPlainContent = value as string;
    console.info('Success to get text/plain value. value is: ' + textPlainContent);
}).catch((err: BusinessError) => {
    console.error('Failed to get text/plain value. Cause: ' + err.message);
});
record.getData(pasteboard.MIMETYPE_TEXT_URI).then((value: pasteboard.ValueType) => {
    let uri = value as string;
    console.info('Success to get text/uri value. value is: ' + uri);
}).catch((err: BusinessError) => {
    console.error('Failed to get text/uri value. Cause: ' + err.message);
});

convertToText(deprecated)

convertToText(callback: AsyncCallback<string>): void

Forcibly converts the content in a PasteData object to text. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use toPlainText.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<string>YesCallback used to return the result. If the operation is successful, err is undefined and data is the text obtained from the conversion. Otherwise, err is error information.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: Incorrect parameters types.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
record.convertToText((err: BusinessError, data: string) => {
    if (err) {
        console.error(`Failed to convert to text. Cause: ${err.message}`);
        return;
    }
    console.info(`Succeeded in converting to text. Data: ${data}`);
});

convertToText(deprecated)

convertToText(): Promise<string>

Forcibly converts the content in a PasteData object to text. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use toPlainText.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<string>Promise used to return the text obtained from the conversion.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let record: pasteboard.PasteDataRecord = pasteboard.createUriRecord('dataability:///com.example.myapplication1/user.txt');
record.convertToText().then((data: string) => {
    console.info(`Succeeded in converting to text. Data: ${data}`);
}).catch((err: BusinessError) => {
    console.error(`Failed to convert to text. Cause: ${err.message}`);
});

PasteData

Implements a PasteData object. Paste data contains one or more data records (PasteDataRecord) and property description objects (PasteDataProperty).

Before calling any API in PasteData, you must use createData() or getData() to create a PasteData object.

System capability: SystemCapability.MiscServices.Pasteboard

getPrimaryText

getPrimaryText(): string

Obtains the plain text of the primary record.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
stringPlain text. If the PasteData object does not contain plain text, undefined is returned by default.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
    let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
    console.error('Failed to get PasteData. Cause: ' + err.message);
});

getPrimaryHtml7+

getPrimaryHtml(): string

Obtains the HTML content of the primary record.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
stringHTML content. If the PasteData object does not contain HTML content, undefined is returned by default.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
    let htmlText: string = pasteData.getPrimaryHtml();
}).catch((err: BusinessError) => {
    console.error('Failed to get PasteData. Cause: ' + err.message);
});

getPrimaryWant7+

getPrimaryWant(): Want

Obtains the Want object of the primary record.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
WantWant object. If the PasteData object does not contain the Want object, undefined is returned by default.

Example

import { Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
    let want: Want = pasteData.getPrimaryWant();
}).catch((err: BusinessError) => {
    console.error('Failed to get PasteData. Cause: ' + err.message);
});

getPrimaryUri7+

getPrimaryUri(): string

Obtains the URI of the primary record.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
stringURI content. If the PasteData object does not contain the URI, undefined is returned by default.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
    let uri: string = pasteData.getPrimaryUri();
}).catch((err: BusinessError) => {
    console.error('Failed to get PasteData. Cause: ' + err.message);
});

getPrimaryPixelMap9+

getPrimaryPixelMap(): image.PixelMap

Obtains the pixel map of the primary record.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
image.PixelMapPixel map. If the PasteData object does not contain the pixel map, undefined is returned by default.

Example

import { image } from '@kit.ImageKit';

let buffer = new ArrayBuffer(128);
let realSize: image.Size = { height: 3, width: 5 };
let opt: image.InitializationOptions = {
    size: realSize,
    pixelFormat: 3,
    editable: true,
    alphaType: 1,
    scaleMode: 1
};
image.createPixelMap(buffer, opt).then((pixelMap: image.PixelMap) => {
    let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
    let PixelMap: image.PixelMap = pasteData.getPrimaryPixelMap();
});

addRecord7+

addRecord(record: PasteDataRecord): void

Adds a data record to this pasteboard, and adds its type to mimeTypes in PasteDataProperty. The parameters cannot be empty. Otherwise, the operation fails.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
recordPasteDataRecordYesRecord to add.

Example

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);
pasteData.addRecord(textRecord);
pasteData.addRecord(htmlRecord);

addRecord9+

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

Adds a data record to this pasteboard, and adds its type to mimeTypes in PasteDataProperty. The parameters cannot be empty. Otherwise, the operation fails.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
mimeTypestringYesMIME type of pasteboard data. The length cannot exceed 1024 bytes.
valueValueTypeYesData content.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, 'dataability:///com.example.myapplication1/user.txt');
let dataXml = new ArrayBuffer(256);
pasteData.addRecord('app/xml', dataXml);

getMimeTypes7+

getMimeTypes(): Array<string>

Obtains a list of mimeTypes objects in PasteDataProperty from this pasteboard. If the pasteboard is empty, the returned list is also empty.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Array<string>Non-repeating data types of the data records on the pasteboard.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let types: string[] = pasteData.getMimeTypes();

getPrimaryMimeType7+

getPrimaryMimeType(): string

Obtains the data type of the primary record in this pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
stringData type of the primary record.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let type: string = pasteData.getPrimaryMimeType();

getProperty7+

getProperty(): PasteDataProperty

Obtains the property of the pasteboard data.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
PasteDataPropertyProperty of the pasteboard data.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let property: pasteboard.PasteDataProperty = pasteData.getProperty();

setProperty9+

setProperty(property: PasteDataProperty): void

Sets a PasteDataProperty object.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
propertyPasteDataPropertyYesProperty of the pasteboard data.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

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();
prop.shareOption = pasteboard.ShareOption.INAPP;
// Note that attributes cannot be added to additions. Attributes can be added only by re-assigning values.
prop.additions = { 'TestOne': { 'Test': 123 }, 'TestTwo': { 'Test': 'additions' } } as AdditionType;
prop.tag = 'TestTag';
pasteData.setProperty(prop);

The localOnly and shareOption attributes of PasteDataProperty are mutually exclusive. The shareOption attribute is prioritized, and its value affects the value of localOnly.

(async () => {
    let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
    let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
    prop.shareOption = pasteboard.ShareOption.INAPP;
    prop.localOnly = false;
    pasteData.setProperty(prop);
    let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();

    await systemPasteboard.setData(pasteData).then(async () => {
        console.info('Succeeded in setting PasteData.');
        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
            prop.localOnly; // true
        });
    });

    prop.shareOption = pasteboard.ShareOption.LOCALDEVICE;
    prop.localOnly = false;
    pasteData.setProperty(prop);

    await systemPasteboard.setData(pasteData).then(async () => {
        console.info('Succeeded in setting PasteData.');
        await systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
            let prop: pasteboard.PasteDataProperty = pasteData.getProperty();
            prop.localOnly; // true
        });
    });
})

getRecord9+

getRecord(index: number): PasteDataRecord

Obtains the record with a specific index from the pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
indexnumberYesIndex of the target record.

Return value

TypeDescription
PasteDataRecordRecord with the specified index.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
12900001The index is out of the record.
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteData.getRecord(0);

getRecordCount7+

getRecordCount(): number

Obtains the number of records in the pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
numberNumber of records.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let count: number = pasteData.getRecordCount();

getTag7+

getTag(): string

Obtains the custom tag from the pasteboard. If no custom tag is set, null is returned.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
stringCustom tag. If no custom tag is set, null is returned.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let tag: string = pasteData.getTag();

hasType9+

hasType(mimeType: string): boolean

Checks whether the pasteboard contains data of the specified type.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
mimeTypestringYesType of the data to query. The value can be a predefined type listed in Constants(#constants), including HTML, WANT, plain text, URI, and pixel map, or a custom MIME type.

Return value

TypeDescription
booleanReturns true if the specified data type exists; returns false otherwise.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let hasType: boolean = pasteData.hasType(pasteboard.MIMETYPE_TEXT_PLAIN);

removeRecord9+

removeRecord(index: number): void

Removes the record with a specific index from the pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
indexnumberYesSpecified index.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
12900001The index is out of the record.
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
pasteData.removeRecord(0);

replaceRecord9+

replaceRecord(index: number, record: PasteDataRecord): void

Replaces the record with a specific index from the pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
indexnumberYesSpecified index.
recordPasteDataRecordYesNew record.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
12900001The index is out of the record.
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let record: pasteboard.PasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, 'file://com.example.myapplication1/data/storage/el2/base/files/file.txt');
pasteData.replaceRecord(0, record);

pasteStart12+

pasteStart(): void

Notifies the clipboard service to retain the cross-device channel before reading data from the clipboard.

System capability: SystemCapability.MiscServices.Pasteboard

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
    if (err) {
        console.error('Failed to get PasteData. Cause: ' + err.message);
        return;
    }
    pasteData.pasteStart();
    console.log(`using data: ${pasteData.getPrimaryText()}`);
    pasteData.pasteComplete();
});

pasteComplete12+

pasteComplete(): void

Notifies the clipboard service that the paste is complete.

System capability: SystemCapability.MiscServices.Pasteboard

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
    if (err) {
        console.error('Failed to get PasteData. Cause: ' + err.message);
        return;
    }
    pasteData.pasteStart();
    console.log(`using data: ${pasteData.getPrimaryText()}`);
    pasteData.pasteComplete();
});

addHtmlRecord(deprecated)

addHtmlRecord(htmlText: string): void

Adds an HTML record to this pasteboard, and adds MIMETYPE_TEXT_HTML to mimeTypes in PasteDataProperty. The parameters cannot be empty. Otherwise, the operation fails.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use addRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
htmlTextstringYesHTML content.

Example

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>";
pasteData.addHtmlRecord(html);

addWantRecord(deprecated)

addWantRecord(want: Want): void

Adds a Want record to this pasteboard, and adds MIMETYPE_TEXT_WANT to mimeTypes in PasteDataProperty. The parameters cannot be empty. Otherwise, the operation fails.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use addRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
wantWantYesWant object.

Example

import { Want } from '@kit.AbilityKit';

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let object: Want = {
    bundleName: "com.example.aafwk.test",
    abilityName: "com.example.aafwk.test.TwoAbility"
};
pasteData.addWantRecord(object);

addTextRecord(deprecated)

addTextRecord(text: string): void

Adds a plain text record to this pasteboard, and adds MIME_TEXT_PLAIN to mimeTypes in PasteDataProperty. The parameters cannot be empty. Otherwise, the operation fails.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use addRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
textstringYesPlain text.

Example

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
pasteData.addTextRecord('good');

addUriRecord(deprecated)

addUriRecord(uri: string): void

Adds a URI record to this pasteboard, and adds MIMETYPE_TEXT_URI to mimeTypes in PasteDataProperty. The parameters cannot be empty. Otherwise, the operation fails.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use addRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
uristringYesURI content.

Example

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
pasteData.addUriRecord('dataability:///com.example.myapplication1/user.txt');

getRecordAt(deprecated)

getRecordAt(index: number): PasteDataRecord

Obtains the record with a specific index from the pasteboard.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
indexnumberYesIndex of the target record.

Return value

TypeDescription
PasteDataRecordRecord with the specified index.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let record: pasteboard.PasteDataRecord = pasteData.getRecordAt(0);

hasMimeType(deprecated)

hasMimeType(mimeType: string): boolean

Checks whether the pasteboard contains data of the specified type.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use hasType.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
mimeTypestringYesType of the data to query.

Return value

TypeDescription
booleanReturns true if the specified data type exists; returns false otherwise.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let hasType: boolean = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);

removeRecordAt(deprecated)

removeRecordAt(index: number): boolean

Removes the record with a specific index from the pasteboard.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use removeRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
indexnumberYesSpecified index.

Return value

TypeDescription
booleanReturns true if the operation is successful; returns false otherwise.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('hello');
let isRemove: boolean = pasteData.removeRecordAt(0);

replaceRecordAt(deprecated)

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

Replaces the record with a specific index from the pasteboard.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use replaceRecord.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
indexnumberYesSpecified index.
recordPasteDataRecordYesNew record.

Return value

TypeDescription
booleanReturns true if the operation is successful; returns false otherwise.

Example

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);

SystemPasteboard

Provides SystemPasteboard APIs.

Before calling any SystemPasteboard API, you must obtain a SystemPasteboard object using getSystemPasteboard.

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();

on('update')7+

on(type: 'update', callback: () =>void ): void

Subscribes to the content change event of the system pasteboard.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The value 'update' indicates changes in the pasteboard content.
callbackfunctionYesCallback invoked when the pasteboard content changes.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
let listener = () => {
    console.info('The system pasteboard has changed.');
};
systemPasteboard.on('update', listener);

off('update')7+

off(type: 'update', callback?: () =>void ): void

Unsubscribes from the system pasteboard content change event.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The value 'update' indicates changes in the pasteboard content.
callbackfunctionNoCallback invoked when the pasteboard content changes. If this parameter is not specified, listening will be disabled for all callbacks registered by the current application.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
let listener = () => {
    console.info('The system pasteboard has changed.');
};
systemPasteboard.off('update', listener);

clearData9+

clearData(callback: AsyncCallback<void>): void

Clears the system pasteboard. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clearData((err, data) => {
    if (err) {
        console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
        return;
    }
    console.info('Succeeded in clearing the pasteboard.');
});

clearData9+

clearData(): Promise<void>

Clears the system pasteboard. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<void>Promise that returns no value.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clearData().then((data: void) => {
    console.info('Succeeded in clearing the pasteboard.');
}).catch((err: BusinessError) => {
    console.error(`Failed to clear the pasteboard. Cause: ${err.message}`);
});

setData9+

setData(data: PasteData, callback: AsyncCallback<void>): void

Writes a PasteData object to the pasteboard. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
dataPasteDataYesPasteData object.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
27787277Another copy or paste operation is in progress.
27787278Replication is prohibited.
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setData(pasteData, (err, data) => {
    if (err) {
        console.error('Failed to set PasteData. Cause: ' + err.message);
        return;
    }
    console.info('Succeeded in setting PasteData.');
});

setData9+

setData(data: PasteData): Promise<void>

Writes a PasteData object to the pasteboard. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
dataPasteDataYesPasteData object.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
27787277Another copy or paste operation is in progress.
27787278Replication is prohibited.
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setData(pasteData).then((data: void) => {
    console.info('Succeeded in setting PasteData.');
}).catch((err: BusinessError) => {
    console.error('Failed to set PasteData. Cause: ' + err.message);
});

getData9+

getData( callback: AsyncCallback<PasteData>): void

Obtains a PasteData object from the pasteboard. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.READ_PASTEBOARD. For details about how to access the pasteboard, see Requesting Permissions to Access the Pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<PasteData>YesCallback used to return the result. If the operation is successful, err is undefined and data is the system pasteboard data. Otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
27787277Another copy or paste operation is in progress.
201Permission verification failed. The application does not have the permission required to call the API.
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData((err: BusinessError, pasteData: pasteboard.PasteData) => {
    if (err) {
        console.error('Failed to get PasteData. Cause: ' + err.message);
        return;
    }
    let text: string = pasteData.getPrimaryText();
});

getData9+

getData(): Promise<PasteData>

Obtains a PasteData object from the pasteboard. This API uses a promise to return the result.

Required permissions: ohos.permission.READ_PASTEBOARD. For details about how to access the pasteboard, see Requesting Permissions to Access the Pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<PasteData>Promise used to return the system pasteboard data.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
27787277Another copy or paste operation is in progress.
201Permission verification failed. The application does not have the permission required to call the API.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getData().then((pasteData: pasteboard.PasteData) => {
    let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
    console.error('Failed to get PasteData. Cause: ' + err.message);
});

hasData9+

hasData(callback: AsyncCallback<boolean>): void

Checks whether the system pasteboard contains data. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<boolean>YesCallback used to return the result. Returns true if the system pasteboard contains data; returns false otherwise.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasData((err: BusinessError, data: boolean) => {
    if (err) {
        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
        return;
    }
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
});

hasData9+

hasData(): Promise<boolean>

Checks whether the system pasteboard contains data. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<boolean>Callback used to return the result. Returns true if the system pasteboard contains data; returns false otherwise.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasData().then((data: boolean) => {
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
}).catch((err: BusinessError) => {
    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
});

clear(deprecated)

clear(callback: AsyncCallback<void>): void

Clears the system pasteboard. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.clearData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clear((err, data) => {
    if (err) {
        console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
        return;
    }
    console.info('Succeeded in clearing the PasteData.');
});

clear(deprecated)

clear(): Promise<void>

Clears the system pasteboard. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use pasteboard.clearData.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<void>Promise that returns no value.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.clear().then((data) => {
    console.info('Succeeded in clearing the PasteData.');
}).catch((err: BusinessError) => {
    console.error(`Failed to clear the PasteData. Cause: ${err.message}`);
});

getPasteData(deprecated)

getPasteData( callback: AsyncCallback<PasteData>): void

Obtains a PasteData object from the pasteboard. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 6 and deprecated since API version 9. You are advised to use getData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<PasteData>YesCallback used to return the result. If the operation is successful, err is undefined and data is the system pasteboard data. Otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getPasteData((err: BusinessError, pasteData: pasteboard.PasteData) => {
    if (err) {
        console.error('Failed to get PasteData. Cause: ' + err.message);
        return;
    }
    let text: string = pasteData.getPrimaryText();
});

getPasteData(deprecated)

getPasteData(): Promise<PasteData>

Obtains a PasteData object from the pasteboard. This API uses a promise to return the result.

NOTE

This API is supported since API version 6 and deprecated since API version 9. You are advised to use getData.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<PasteData>Promise used to return the system pasteboard data.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getPasteData().then((pasteData: pasteboard.PasteData) => {
    let text: string = pasteData.getPrimaryText();
}).catch((err: BusinessError) => {
    console.error('Failed to get PasteData. Cause: ' + err.message);
});

hasPasteData(deprecated)

hasPasteData(callback: AsyncCallback<boolean>): void

Checks whether the system pasteboard contains data. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use hasData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<boolean>YesCallback used to return the result. Returns true if the system pasteboard contains data; returns false otherwise.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasPasteData((err: BusinessError, data: boolean) => {
    if (err) {
        console.error(`Failed to check the PasteData. Cause: ${err.message}`);
        return;
    }
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
});

hasPasteData(deprecated)

hasPasteData(): Promise<boolean>

Checks whether the system pasteboard contains data. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use hasData.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<boolean>Callback used to return the result. Returns true if the system pasteboard contains data; returns false otherwise.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.hasPasteData().then((data: boolean) => {
    console.info(`Succeeded in checking the PasteData. Data: ${data}`);
}).catch((err: BusinessError) => {
    console.error(`Failed to check the PasteData. Cause: ${err.message}`);
});

setPasteData(deprecated)

setPasteData(data: PasteData, callback: AsyncCallback<void>): void

Writes a PasteData object to the pasteboard. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 6 and deprecated since API version 9. You are advised to use setData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
dataPasteDataYesPasteData object.
callbackAsyncCallback<void>YesCallback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.

Example

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setPasteData(pasteData, (err, data) => {
    if (err) {
        console.error('Failed to set PasteData. Cause: ' + err.message);
        return;
    }
    console.info('Succeeded in setting PasteData.');
});

setPasteData(deprecated)

setPasteData(data: PasteData): Promise<void>

Writes a PasteData object to the pasteboard. This API uses a promise to return the result.

NOTE

This API is supported since API version 6 and deprecated since API version 9. You are advised to use setData.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
dataPasteDataYesPasteData object.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let pasteData: pasteboard.PasteData = pasteboard.createPlainTextData('content');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setPasteData(pasteData).then((data: void) => {
    console.info('Succeeded in setting PasteData.');
}).catch((err: BusinessError) => {
    console.error('Failed to set PasteData. Cause: ' + err.message);
});

isRemoteData11+

isRemoteData(): boolean

Checks whether the data in the pasteboard is from another device.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
booleanReturns true if the data in the pasteboard is from another device; returns false otherwise.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
12900005Request timed out.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    let result: boolean = systemPasteboard.isRemoteData();
    console.info(`Succeeded in checking the RemoteData. Result: ${result}`);
} catch (err) {
    console.error('Failed to check the RemoteData. Cause:' + err.message);
};

getDataSource11+

getDataSource(): string

Obtains the application bundle name of the data source.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
stringApplication bundle name of the data source.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
12900005Request timed out.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    let result: string = systemPasteboard.getDataSource();
    console.info(`Succeeded in getting DataSource. Result: ${result}`);
} catch (err) { 
    console.error('Failed to get DataSource. Cause:' + err.message);
};

hasDataType11+

hasDataType(mimeType: string): boolean

Checks whether the pasteboard contains data of the specified type.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
mimeTypestringYesData type.

Return value

TypeDescription
booleanReturns true if the pasteboard contains data of the specified type; returns false otherwise.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.
12900005Request timed out.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    let result: boolean = systemPasteboard.hasDataType(pasteboard.MIMETYPE_TEXT_PLAIN);
    console.info(`Succeeded in checking the DataType. Result: ${result}`);
} catch (err) {
    console.error('Failed to check the DataType. Cause:' + err.message);
};

clearDataSync11+

clearDataSync(): void

Clears the system pasteboard. This API returns the result synchronously.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
12900005Request timed out.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    systemPasteboard.clearDataSync();
    console.info('Succeeded in clearing the pasteboard.');
} catch (err) {
    console.error('Failed to clear the pasteboard. Cause:' + err.message);
};

getDataSync11+

getDataSync(): PasteData

Reads data in the system pasteboard. This API returns the result synchronously.

Required permissions: ohos.permission.READ_PASTEBOARD. For details about how to access the pasteboard, see Requesting Permissions to Access the Pasteboard.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
PasteDataData in the system pasteboard.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
12900005Request timed out.
201Permission verification failed. The application does not have the permission required to call the API.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    let result: pasteboard.PasteData = systemPasteboard.getDataSync();
    console.info('Succeeded in getting PasteData.');
} catch (err) {
    console.error('Failed to get PasteData. Cause:' + err.message);
};   

setDataSync11+

setDataSync(data: PasteData): void

Writes data to the system pasteboard. This API returns the result synchronously.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
dataPasteDataYesData to be written to the pasteboard.

Error codes

For details about the error codes, see Universal Error Codes and Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.
12900005Request timed out.

Example

let pasteData: pasteboard.PasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, 'hello');
let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    systemPasteboard.setDataSync(pasteData);
    console.info('Succeeded in setting PasteData.');
} catch (err) {
    console.error('Failed to set PasteData. Cause:' + err.message);
};  

hasDataSync11+

hasDataSync(): boolean

Checks whether the system pasteboard contains data. This API returns the result synchronously.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
booleanCallback used to return the result. Returns true if the system pasteboard contains data; returns false otherwise.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
12900005Request timed out.

Example

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    let result: boolean = systemPasteboard.hasDataSync();
    console.info(`Succeeded in checking the PasteData. Result: ${result}`);
} catch (err) {
    console.error('Failed to check the PasteData. Cause:' + err.message);
};    

getUnifiedData12+

getUnifiedData(): Promise<unifiedDataChannel.UnifiedData>

Obtains a PasteData object from the pasteboard. This API uses a promise to return the result.

Required permissions: ohos.permission.READ_PASTEBOARD. For details about how to access the pasteboard, see Requesting Permissions to Access the Pasteboard.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<unifiedDataChannel.UnifiedData>Promise used to return the system pasteboard data.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
201Permission verification failed. The application does not have the permission required to call the API.
27787277Another copy or paste operation is in progress.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { unifiedDataChannel, uniformDataStruct, uniformTypeDescriptor } from '@kit.ArkData';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getUnifiedData().then((data) => {
    let records: Array<unifiedDataChannel.UnifiedRecord> = data.getRecords();
    for (let j = 0; j < records.length; j++) {
        if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
            let text = records[j].getValue() as uniformDataStruct.PlainText;
            console.info(`${j + 1}.${text.textContent}`);
        }
    }
}).catch((err: BusinessError) => {
    console.error('Failed to get UnifiedData. Cause: ' + err.message);
});

getUnifiedDataSync12+

getUnifiedDataSync(): unifiedDataChannel.UnifiedData

Reads data in the system pasteboard. This API returns the result synchronously.

Required permissions: ohos.permission.READ_PASTEBOARD. For details about how to access the pasteboard, see Requesting Permissions to Access the Pasteboard.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
unifiedDataChannel.UnifiedDataData in the system pasteboard.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
201Permission verification failed. The application does not have the permission required to call the API.
12900005Request timed out.

Example

import { unifiedDataChannel } from '@kit.ArkData';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    let result: unifiedDataChannel.UnifiedData = systemPasteboard.getUnifiedDataSync();
    console.info('Succeeded in getting UnifiedData.');
} catch (err) {
    console.error('Failed to get UnifiedData. Cause:' + err.message);
};   

setUnifiedData12+

setUnifiedData(data: unifiedDataChannel.UnifiedData): Promise<void>

Writes a PasteData object to the pasteboard. This API uses a promise to return the result.

System capability: SystemCapability.MiscServices.Pasteboard

Atomic service API: This API can be used in atomic services since API version 12.

Parameters

NameTypeMandatoryDescription
dataunifiedDataChannel.UnifiedDataYesData to be written to the pasteboard.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.
27787277Another copy or paste operation is in progress.
27787278Replication is prohibited.

Example

import { BusinessError } from '@kit.BasicServicesKit';
import { unifiedDataChannel, uniformDataStruct, uniformTypeDescriptor } from '@kit.ArkData';

let plainText : uniformDataStruct.PlainText = {
    uniformDataType: uniformTypeDescriptor.UniformDataType.PLAIN_TEXT,
    textContent : 'PLAINTEXT_CONTENT',
    abstract : 'PLAINTEXT_ABSTRACT',
}
let record = new unifiedDataChannel.UnifiedRecord(uniformTypeDescriptor.UniformDataType.PLAIN_TEXT, plainText);
let data = new unifiedDataChannel.UnifiedData();
data.addRecord(record);

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.setUnifiedData(data).then((data: void) => {
    console.info('Succeeded in setting UnifiedData.');
}).catch((err: BusinessError) => {
    console.error('Failed to setUnifiedData. Cause: ' + err.message);
});

setUnifiedDataSync12+

setUnifiedDataSync(data: unifiedDataChannel.UnifiedData): void

Writes data to the system pasteboard. This API returns the result synchronously.

System capability: SystemCapability.MiscServices.Pasteboard

Atomic service API: This API can be used in atomic services since API version 12.

Parameters

NameTypeMandatoryDescription
dataunifiedDataChannel.UnifiedDataYesData to be written to the pasteboard.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
401Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.
12900005Request timed out.

Example

import { unifiedDataChannel } from '@kit.ArkData';

let plainTextData = new unifiedDataChannel.UnifiedData();
let plainText = new unifiedDataChannel.PlainText();
plainText.details = {
    Key: 'delayPlaintext',
    Value: 'delayPlaintext',
};
plainText.textContent = 'delayTextContent';
plainText.abstract = 'delayTextContent';
plainTextData.addRecord(plainText);

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    systemPasteboard.setUnifiedDataSync(plainTextData);
    console.info('Succeeded in setting UnifiedData.');
} catch (err) {
    console.error('Failed to set UnifiedData. Cause:' + err.message);
};

setAppShareOptions14+

setAppShareOptions(shareOptions: ShareOption): void

Sets pasteable range of pasteboard data for applications.

Required permissions: ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
shareOptionsShareOptionYesPasteable range. Only pasteboard.ShareOption.INAPP is allowed.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
201Permission verification failed. The application does not have the permission required to call the API.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
12900006Settings already exist.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
  systemPasteboard.setAppShareOptions(pasteboard.ShareOption.INAPP);
  console.info('Set app share options success.');
} catch (err) {
  let error: BusinessError = err as BusinessError;
  console.error(`Set app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`);
}

removeAppShareOptions14+

removeAppShareOptions(): void

Deletes the global pasteable range of the application.

Required permissions: ohos.permission.MANAGE_PASTEBOARD_APP_SHARE_OPTION

System capability: SystemCapability.MiscServices.Pasteboard

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
201Permission verification failed. The application does not have the permission required to call the API.

Example

import { BusinessError } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
  systemPasteboard.removeAppShareOptions();
  console.info('Remove app share options success.');
} catch (err) {
  let error: BusinessError = err as BusinessError;
  console.error(`Remove app share options failed, errorCode: ${error.code}, errorMessage: ${error.message}.`);
}

Pattern13+

Describes the modes supported by the pasteboard.

System capability: SystemCapability.MiscServices.Pasteboard

NameValueDescription
URL0URL.
NUMBER1Number.
EMAIL_ADDRESS2Email address.

detectPatterns13+

detectPatterns(patterns: Array<Pattern>): Promise<Array<Pattern>>

Detects patterns on the local pasteboard. This API uses a promise to return the result.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
patternsArray<Pattern>YesPattern to be detected in the pasteboard.

Return value

TypeDescription
Promise<Array<Pattern>>Promise used to return the detected pattern.

Error codes

For details about the error codes, see Universal Error Codes.

Error Code IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed.

Example

import { pasteboard } from '@kit.BasicServicesKit'

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
let patterns: Array<pasteboard.Pattern> = [pasteboard.Pattern.URL, pasteboard.Pattern.EMAIL_ADDRESS];

systemPasteboard.detectPatterns(patterns).then((data: Array<pasteboard.Pattern>) => {
    if (patterns.sort().join('')==data.sort().join('')) {
      console.info('All needed patterns detected, next get data');
      try {
        let result: pasteboard.PasteData = systemPasteboard.getDataSync();
        console.info('Succeeded in getting PasteData.');
      } catch (err) {
        console.error('Failed to get PasteData. Cause:' + err.message);
      };
    } else {
      console.info("Not all needed patterns detected, no need to get data.");
    }
});

getMimeTypes14+

getMimeTypes(): Promise<Array<string>>

Obtains the MIME type from the pasteboard. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 14.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
Promise<Array<string>>Promise used to return the read MIME type.

Example

import { pasteboard, BusinessError } from '@kit.BasicServicesKit'

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
systemPasteboard.getMimeTypes().then((data: Array<String>) => {
    console.info('Succeeded in getting mimeTypes. mimeTypes: ' + data.sort().join(','));
}).catch((err: BusinessError) => {
    console.error('Failed to get mimeTypes. Cause:' + err.message);
});

getDataWithProgress15+

getDataWithProgress(params: GetDataParams): Promise<PasteData>

Obtains the pasteboard data and progress. This API uses a promise to return the result. Folders cannot be copied.

Required permissions: ohos.permission.READ_PASTEBOARD. For details about how to access the pasteboard, see Requesting Permissions to Access the Pasteboard.

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.MiscServices.Pasteboard

Parameters

NameTypeMandatoryDescription
paramsGetDataParamsYesParameters required when an application uses the file copy capability provided by the pasteboard, including the destination path, file conflict option, and progress bar type.

Return value

TypeDescription
Promise<PasteData>Promise used to return the system pasteboard data.

Error codes

For details about the error codes, see Pasteboard Error Codes.

Error Code IDError Message
201Permission verification failed. The application does not have the permission required to call the API.
401Parameter error.
12900003Another copy or paste operation is in progress.
12900007Copy file failed.
12900008Failed to start progress.
12900009Progress exits abnormally.
12900010Get pasteData error.

Example

import { BusinessError, pasteboard } from '@kit.BasicServicesKit';
@Entry
@Component
struct PasteboardTest {
 build() {
   RelativeContainer() {
     Column() {
       Column() {
         Button("Copy txt")
           .onClick(async ()=>{
              let text = "test";
              let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, text);
              let systemPasteboard = pasteboard.getSystemPasteboard();
        	  await systemPasteboard.setData(pasteData);
              let ProgressListener = (progress: pasteboard.ProgressInfo) => {
    		    console.log('progressListener success, progress:' + progress.progress);
              }
              let params: pasteboard.GetDataParams = {
                destUri: '/data/storage/el2/base/haps/entry/files/dstFile.txt',
                fileConflictOptions: pasteboard.FileConflictOptions.OVERWRITE,
                progressIndicator: pasteboard.ProgressIndicator.DEFAULT,
                progressListener: ProgressListener
              };
              systemPasteboard.getDataWithProgress(params).then((pasteData: pasteboard.PasteData) => {
                console.error('getDataWithProgress succ');
              }).catch((err: BusinessError) => {
                console.error('Failed to get PasteData. Cause: ' + err.message);
              })
          })
        }
      }
    }
  }
}

getChangeCount18+

getChangeCount(): number

Obtains the number of times that the pasteboard data changes.

Returns the result if this API is called successfully; otherwise, returns 0.

Even though the pasteboard data expires, or the data becomes empty because of the called clearDataSync API, the number of data changes remains.

When the system is restarted, or the pasteboard service is restarted due to an exception, the number of pasteboard data changes counts from 0. In addition, copying the same data repeatedly is considered to change the data for multiple times. Therefore, each time the data is copied, the number of data changes increases.

Atomic service API: This API can be used in atomic services since API version 18.

System capability: SystemCapability.MiscServices.Pasteboard

Return value

TypeDescription
numberNumber of times that the pasteboard data changes.

Example

import { BusinessError, pasteboard } from '@kit.BasicServicesKit';

let systemPasteboard: pasteboard.SystemPasteboard = pasteboard.getSystemPasteboard();
try {
    let result : number = systemPasteboard.getChangeCount();
    console.info(`Succeeded in getting the ChangeCount. Result: ${result}`);
} catch (err) {
    console.error(`Failed to get the ChangeCount. Cause: ${err.message}`);
};

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Basic Services Kit

harmony 鸿蒙DeviceInfo

harmony 鸿蒙InitSync

harmony 鸿蒙OH_Print

harmony 鸿蒙OsAccount

harmony 鸿蒙Pasteboard

harmony 鸿蒙Print_Margin

harmony 鸿蒙Print_PageSize

harmony 鸿蒙Print_PrintAttributes

harmony 鸿蒙Print_PrintDocCallback

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/kxk2pv