harmony 鸿蒙@ohos.data.unifiedDataChannel (Unified Data Channel)

2023-10-30 浏览 (498)

@ohos.data.unifiedDataChannel (Unified Data Channel)

As a part of the Unified Data Management Framework (UDMF), the unifiedDataChannel module provides unified data channels and standard data access interfaces for many-to-many data sharing across applications. It also provides standard definitions for data types, such as text and image, to streamline data interaction between different applications and minimize the workload of data type adaptation.

NOTE

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

Modules to Import

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';

UnifiedData

Provides APIs for encapsulating a set of data records.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

constructor

constructor(record: UnifiedRecord)

A constructor used to create a UnifiedData object with a data record.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
recordUnifiedRecordYesData record in the UnifiedData object. It is a UnifiedRecord child class object.

Example

let text = new unifiedDataChannel.PlainText();
text.textContent = 'this is textContent of text';
let unifiedData = new unifiedDataChannel.UnifiedData(text);

addRecord

addRecord(record: UnifiedRecord): void

Adds a data record to this UnifiedRecord object.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
recordUnifiedRecordYesData record to add. It is a UnifiedRecord child class object.

Example

let text1 = new unifiedDataChannel.PlainText();
text1.textContent = 'this is textContent of text1';
let unifiedData = new unifiedDataChannel.UnifiedData(text1);

let text2 = new unifiedDataChannel.PlainText();
text2.textContent = 'this is textContent of text2';
unifiedData.addRecord(text2);

getRecords

getRecords(): Array<UnifiedRecord>

Obtains all data records from this UnifiedData object. The data obtained is of the UnifiedRecord type. Before using the data, you need to use getType to obtain the data type and convert the data type to a child class.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Return value

TypeDescription
Array<UnifiedRecord>Records in the UnifiedData object obtained.

Example

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';

let text = new unifiedDataChannel.PlainText();
text.textContent = 'this is textContent of text';
let unifiedData = new unifiedDataChannel.UnifiedData(text);

let link = new unifiedDataChannel.Hyperlink();
link.url = 'www.XXX.com';
unifiedData.addRecord(link);

let records = unifiedData.getRecords();
for (let i = 0; i < records.length; i++) {
  let record = records[i];
  if (record.getType() == uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
    let plainText = record as unifiedDataChannel.PlainText;
    console.info(`textContent: ${plainText.textContent}`);
  } else if (record.getType() == uniformTypeDescriptor.UniformDataType.HYPERLINK) {
    let hyperlink = record as unifiedDataChannel.Hyperlink;
    console.info(`linkUrl: ${hyperlink.url}`);
  }
}

Summary

Defines the summary of a UnifiedData object, including the data types and sizes. Currently, it is not supported.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
summary{ [key: string]: number }YesNoDictionary type object, where the key indicates the data type (see UniformDataType), and the value indicates the total size (in bytes) of this type of records in the UnifiedData object.
totalSizenumberYesNoTotal size of all the records in the UnifiedData object, in bytes.

UnifiedRecord

An abstract definition of the data content supported by the UDMF. A UnifiedRecord object contains one or more data records, for example, a text record, an image record, or an HTML record.

UnifiedRecord is an abstract parent class that does not hold specific data content. It cannot be added to a UnifiedData object directly. Instead, a child class with specific content, such as text and image, must be created.

getType

getType(): string

Obtains the type of this UnfiedRecord. The data obtained by getRecords from the UnifiedData object is a UnifiedRecord object. You need to use this API to obtain the specific type of the record, convert the UnifiedRecord object to its child class, and call the child class interfaces.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Return value

TypeDescription
stringData type obtained. For details, see UniformDataType.

Example

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';

let text = new unifiedDataChannel.PlainText();
text.textContent = 'this is textContent of text';
let unifiedData = new unifiedDataChannel.UnifiedData(text);

let records = unifiedData.getRecords();
if (records[0].getType() == uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
  let plainText = records[0] as unifiedDataChannel.PlainText;
  console.info(`textContent: ${plainText.textContent}`);
}

Text

Represents the text data. It is a child class of UnifiedRecord and a base class of text data. You are advised to use the child class of Text, for example, PlainText, Hyperlink, and HTML, to describe data.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
details{ [key: string]: string }YesYesA dictionary type object, where both the key and value are of the string type and are used to describe the text content. For example, a data object with the following content can be created to describe a text file:
{
"title":"Title",
"content":"Content"
}
This parameter is optional. The default value is an empty dictionary object.

Example

let text = new unifiedDataChannel.Text();
text.details = {
  title: 'MyTitle',
  content: 'this is content',
};
let unifiedData = new unifiedDataChannel.UnifiedData(text);

PlainText

Represents the plaintext data. It is a child class of Text and is used to describe plaintext data.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
textContentstringYesYesPlaintext content.
abstractstringYesYesText abstract. This parameter is optional. The default value is an empty string.

Example

let text = new unifiedDataChannel.PlainText();
text.textContent = 'this is textContent';
text.abstract = 'this is abstract';

Hyperlink

Represents hyperlink data. It is a child class of Text and is used to describe data of the hyperlink type.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
urlstringYesYesURL.
descriptionstringYesYesDescription of the linked content. This parameter is optional. The default value is an empty string.

Example

let link = new unifiedDataChannel.Hyperlink();
link.url = 'www.XXX.com';
link.description = 'this is description';

HTML

Represents the HTML data. It is a child class of Text and is used to describe HTML data.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
htmlContentstringYesYesContent in HTML format.
plainContentstringYesYesPlaintext without HTML tags. This parameter is optional. The default value is an empty string.

Example

let html = new unifiedDataChannel.HTML();
html.htmlContent = '<div><p>Title</p></div>';
html.plainContent = 'this is plainContent';

File

Represents the file data. It is a child class of UnifiedRecord and a base class of the data of the file type. You are advised to use the child class of File, for example, Image, Video, and Folder, to describe data.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
details{ [key: string]: string }YesYesA dictionary type object, where both the key and value are of the string type and are used to describe file information. For example, a data object with the following content can be created to describe a file:
{
"name":"File name",
"type":"File type"
}
This parameter is optional. The default value is an empty dictionary object.
uristringYesYesURI of the file data.

Example

let file = new unifiedDataChannel.File();
file.details = {
    name: 'test',
    type: 'txt',
};
file.uri = 'schema://com.samples.test/files/test.txt';

Image

Represents the image data. It is a child class of File and is used to describe images.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
imageUristringYesYesURI of the image.

Example

let image = new unifiedDataChannel.Image();
image.imageUri = 'schema://com.samples.test/files/test.jpg';

Video

Represents video data. It is a child class of File and is used to describe a video file.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
videoUristringYesYesURI of the video file.

Example

let video = new unifiedDataChannel.Video();
video.videoUri = 'schema://com.samples.test/files/test.mp4';

Audio

Represents video data. It is a child class of File and is used to describe a video file.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
audioUristringYesYesAudio data URI.

Example

let audio = new unifiedDataChannel.Audio();
audio.audioUri = 'schema://com.samples.test/files/test.mp3';

Folder

Represents the folder data. It is a child class of File and is used to describe a folder.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
folderUristringYesYesURI of the folder.

Example

let folder = new unifiedDataChannel.Folder();
folder.folderUri = 'schema://com.samples.test/files/folder/';

SystemDefinedRecord

Represents specific data types defined by OpenHarmony. It is a child class of UnifiedRecord and a base class of OpenHarmony-specific data types. You are advised to use the child class of SystemDefinedRecord, for example, SystemDefinedForm, SystemDefinedAppItem, and SystemDefinedPixelMap, to describe OpenHarmony-specific data.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
details{ [key: string]: number |string |Uint8Array }YesYesA dictionary type object, where the key is of the string type, and the value can be a number, a string, or a Uint8Array.
This parameter is optional. The default value is an empty dictionary object.

Example

let sdr = new unifiedDataChannel.SystemDefinedRecord();
let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
sdr.details = {
    title: 'recordTitle',
    version: 1,
    content: u8Array,
};
let unifiedData = new unifiedDataChannel.UnifiedData(sdr);

SystemDefinedForm

Represents the widget data. It is a child class of SystemDefinedRecord.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
formIdnumberYesYesService widget ID.
formNamestringYesYesWidget name.
bundleNamestringYesYesName of the bundle to which a widget belongs.
abilityNamestringYesYesAbility name corresponding to the widget.
modulestringYesYesName of the module to which the widget belongs.

Example

let form = new unifiedDataChannel.SystemDefinedForm();
form.formId = 123456;
form.formName = 'MyFormName';
form.bundleName = 'MyBundleName';
form.abilityName = 'MyAbilityName';
form.module = 'MyModule';
let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
form.details = {
  formKey1: 123,
  formKey2: 'formValue',
  formKey3: u8Array,
};
let unifiedData = new unifiedDataChannel.UnifiedData(form);

SystemDefinedAppItem

Represents the icon data. It is a child class of SystemDefinedRecord.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
appIdstringYesYesID of the application, for which the icon is used.
appNamestringYesYesName of the application, for which the icon is used.
appIconIdstringYesYesImage ID of the icon.
appLabelIdstringYesYesLabel ID corresponding to the icon name.
bundleNamestringYesYesBundle name corresponding to the icon.
abilityNamestringYesYesApplication ability name corresponding to the icon.

Example

let appItem = new unifiedDataChannel.SystemDefinedAppItem();
appItem.appId = 'MyAppId';
appItem.appName = 'MyAppName';
appItem.appIconId = 'MyAppIconId';
appItem.appLabelId = 'MyAppLabelId';
appItem.bundleName = 'MyBundleName';
appItem.abilityName = 'MyAbilityName';
let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
appItem.details = {
    appItemKey1: 123,
    appItemKey2: 'appItemValue',
    appItemKey3: u8Array,
};
let unifiedData = new unifiedDataChannel.UnifiedData(appItem);

SystemDefinedPixelMap

Represents the image data corresponding to the PixelMap defined by OpenHarmony. It is a child class of SystemDefinedRecord and used to store only the binary data of PixelMap.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
rawDataUint8ArrayYesYesBinary data of the PixelMap object.

Example

import image from '@ohos.multimedia.image'; // Module where the PixelMap class is defined.

const color = new ArrayBuffer(96); // Create a PixelMap object.
let opts: image.InitializationOptions = {
  editable: true, pixelFormat: 3, size: {
    height: 4, width: 6
  }
}
image.createPixelMap(color, opts, (error, pixelmap) => {
  if (error) {
    console.error('Failed to create pixelmap.');
  } else {
    console.info('Succeeded in creating pixelmap.');
    let arrayBuf = new ArrayBuffer(pixelmap.getPixelBytesNumber());
    pixelmap.readPixelsToBuffer(arrayBuf);
    let u8Array = new Uint8Array(arrayBuf);
    let sdpixel = new unifiedDataChannel.SystemDefinedPixelMap();
    sdpixel.rawData = u8Array;
    let unifiedData = new unifiedDataChannel.UnifiedData(sdpixel);
  }
})

ApplicationDefinedRecord

Represents the custom data type for applications only. It is a child class of UnifiedRecord and a base class of custom data types of applications. Applications can extend custom data types based on this class.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableDescription
applicationDefinedTypestringYesYesApplication's custom data type identifier, which must start with ApplicationDefined.
rawDataUint8ArrayYesYesBinary data of the custom data type.

Example

let record = new unifiedDataChannel.ApplicationDefinedRecord();
let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
record.applicationDefinedType = 'ApplicationDefinedType';
record.rawData = u8Array;
let unifiedData = new unifiedDataChannel.UnifiedData(record);

Intention

Enumerates the data channel types supported by the UDMF. It is used to identify different service scenarios, to which the UDMF data channels apply.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameValueDescription
DATA_HUB'DataHub'Public data channel.

Options

Defines the data operation performed by the UDMF. It includes two optional parameters: intention and key. The two parameters have no default value, and can be left unspecified. For details, see the parameter description of the specific API.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

NameTypeReadableWritableMandatoryDescription
intentionIntentionYesYesNoType of the data channel related to the data operation.
keystringYesYesNoUnique identifier of the data object in the UDMF, which can be obtained from the value returned by insertData.
The key consists of udmf:/, intention, bundleName, and groupId with a (/) in between, for example, udmf://DataHub/com.ohos.test/0123456789.
udmf:/ is fixed, DataHub is an enum of intention, com.ohos.test is the bundle name, and 0123456789 is a group ID randomly generated.

unifiedDataChannel.insertData

insertData(options: Options, data: UnifiedData, callback: AsyncCallback<string>): void

Inserts data to the UDMF public data channel. This API uses an asynchronous callback to return the unique identifier of the data inserted.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Only the intention is required.
dataUnifiedDataYesData to insert.
callbackAsyncCallback<string>YesCallback invoked to return the key (unique identifier) of the data inserted.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import { BusinessError } from '@ohos.base';

let plainText = new unifiedDataChannel.PlainText();
plainText.textContent = 'hello world!';
let unifiedData = new unifiedDataChannel.UnifiedData(plainText);

let options: unifiedDataChannel.Options = {
  intention: unifiedDataChannel.Intention.DATA_HUB
}
try {
  unifiedDataChannel.insertData(options, unifiedData, (err, data) => {
    if (err === undefined) {
      console.info(`Succeeded in inserting data. key = ${data}`);
    } else {
      console.error(`Failed to insert data. code is ${err.code},message is ${err.message} `);
    }
  });
  } catch (e) {
    let error: BusinessError = e as BusinessError;
    console.error(`Insert data throws an exception. code is ${error.code},message is ${error.message} `);
}

unifiedDataChannel.insertData

insertData(options: Options, data: UnifiedData): Promise<string>

Inserts data to the UDMF public data channel. This API uses a promise to return the unique identifier of the data inserted.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Only the intention is required.
dataUnifiedDataYesData to insert.

Return value

TypeDescription
Promise<string>Promise used to return the key of the data inserted.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import { BusinessError } from '@ohos.base';

let plainText = new unifiedDataChannel.PlainText();
plainText.textContent = 'hello world!';
let unifiedData = new unifiedDataChannel.UnifiedData(plainText);

let options: unifiedDataChannel.Options = {
  intention: unifiedDataChannel.Intention.DATA_HUB
}
try {
  unifiedDataChannel.insertData(options, unifiedData).then((data) => {
    console.info(`Succeeded in inserting data. key = ${data}`);
  }).catch((err: BusinessError) => {
    console.error(`Failed to insert data. code is ${err.code},message is ${err.message} `);
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Insert data throws an exception. code is ${error.code},message is ${error.message} `);
}

unifiedDataChannel.updateData

updateData(options: Options, data: UnifiedData, callback: AsyncCallback<void>): void

Updates the data in the UDMF public data channel. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Only the value of key is required.
dataUnifiedDataYesNew data.
callbackAsyncCallback<void>YesCallback invoked to return the result. If the data is updated successfully, err is undefined. Otherwise, err is an error object.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import { BusinessError } from '@ohos.base';

let plainText = new unifiedDataChannel.PlainText();
plainText.textContent = 'hello world!';
let unifiedData = new unifiedDataChannel.UnifiedData(plainText);

let options: unifiedDataChannel.Options = {
  key: 'udmf://DataHub/com.ohos.test/0123456789'
};

try {
  unifiedDataChannel.updateData(options, unifiedData, (err) => {
    if (err === undefined) {
      console.info('Succeeded in updating data.');
    } else {
      console.error(`Failed to update data. code is ${err.code},message is ${err.message} `);
    }
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Update data throws an exception. code is ${error.code},message is ${error.message} `);
}

unifiedDataChannel.updateData

updateData(options: Options, data: UnifiedData): Promise<void>

Updates the data in the UDMF public data channel. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Only the value of key is required.
dataUnifiedDataYesNew data.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import { BusinessError } from '@ohos.base';

let plainText = new unifiedDataChannel.PlainText();
plainText.textContent = 'hello world!';
let unifiedData = new unifiedDataChannel.UnifiedData(plainText);

let options: unifiedDataChannel.Options = {
  key: 'udmf://DataHub/com.ohos.test/0123456789'
};

try {
  unifiedDataChannel.updateData(options, unifiedData).then(() => {
    console.info('Succeeded in updating data.');
  }).catch((err: BusinessError) => {
    console.error(`Failed to update data. code is ${err.code},message is ${err.message} `);
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Update data throws an exception. code is ${error.code},message is ${error.message} `);
}

unifiedDataChannel.queryData

queryData(options: Options, callback: AsyncCallback<Array<UnifiedData>>): void

Queries data in the UDMF public data channel. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Both the key and intention are optional, and the return value varies depending on the parameters passed in.
callbackAsyncCallback<Array<UnifiedData>>YesCallback invoked to return the queried data.
If only the key is specified in options, the data corresponding to the key is returned.
If only the intention is specified in options, all data in the intention is returned.
If both intention and key are specified, the intersection of the two is returned, which is the result obtained when only key is specified. If there is no intersection between the specified intention and key, an error object is returned.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

let options: unifiedDataChannel.Options = {
  intention: unifiedDataChannel.Intention.DATA_HUB
};

try {
  unifiedDataChannel.queryData(options, (err, data) => {
    if (err === undefined) {
      console.info(`Succeeded in querying data. size = ${data.length}`);
      for (let i = 0; i < data.length; i++) {
        let records = data[i].getRecords();
        for (let j = 0; j < records.length; j++) {
          if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
            let text = records[j] as unifiedDataChannel.PlainText;
            console.info(`${i + 1}.${text.textContent}`);
          }
        }
      }
    } else {
      console.error(`Failed to query data. code is ${err.code},message is ${err.message} `);
    }
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Query data throws an exception. code is ${error.code},message is ${error.message} `);
}

unifiedDataChannel.queryData

queryData(options: Options): Promise<Array<UnifiedData>>

Queries data in the UDMF public data channel. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Both the key and intention are optional, and the return value varies depending on the parameters passed in.

Return value

TypeDescription
Promise<Array<UnifiedData>>Promise used to return the result.
If only the key is specified in options, the data corresponding to the key is returned.
If only the intention is specified in options, all data in the intention is returned.
If both intention and key are specified, the intersection of the two is returned, which is the result obtained when only key is specified. If there is no intersection between the specified intention and key, an error object is returned.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

let options: unifiedDataChannel.Options = {
  key: 'udmf://DataHub/com.ohos.test/0123456789'
};

try {
  unifiedDataChannel.queryData(options).then((data) => {
    console.info(`Succeeded in querying data. size = ${data.length}`);
    for (let i = 0; i < data.length; i++) {
      let records = data[i].getRecords();
      for (let j = 0; j < records.length; j++) {
        if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
          let text = records[j] as unifiedDataChannel.PlainText;
          console.info(`${i + 1}.${text.textContent}`);
        }
      }
    }
  }).catch((err: BusinessError) => {
    console.error(`Failed to query data. code is ${err.code},message is ${err.message} `);
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Query data throws an exception. code is ${error.code},message is ${error.message} `);
}

unifiedDataChannel.deleteData

deleteData(options: Options, callback: AsyncCallback<Array<UnifiedData>>): void

Deletes data from the UDMF public data channel. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Both the key and intention are optional, and the return value varies depending on the parameters passed in.
callbackAsyncCallback<Array<UnifiedData>>YesCallback invoked to return the data deleted.
If only the key is specified in options, the data corresponding to the key deleted is returned.
If only the intention is specified in options, all data in the intention deleted is returned.
If both intention and key are specified, the intersection of the two deleted is returned. If there is no intersection between the two, an error object is returned.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

let options: unifiedDataChannel.Options = {
  intention: unifiedDataChannel.Intention.DATA_HUB
};

try {
  unifiedDataChannel.deleteData(options, (err, data) => {
    if (err === undefined) {
      console.info(`Succeeded in deleting data. size = ${data.length}`);
      for (let i = 0; i < data.length; i++) {
        let records = data[i].getRecords();
        for (let j = 0; j < records.length; j++) {
          if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
            let text = records[j] as unifiedDataChannel.PlainText;
            console.info(`${i + 1}.${text.textContent}`);
          }
        }
      }
    } else {
      console.error(`Failed to delete data. code is ${err.code},message is ${err.message} `);
    }
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Delete data throws an exception. code is ${error.code},message is ${error.message} `);
}

unifiedDataChannel.deleteData

deleteData(options: Options): Promise<Array<UnifiedData>>

Deletes data from the UDMF public data channel. This API uses a promise to return the result.

System capability: SystemCapability.DistributedDataManager.UDMF.Core

Parameters

NameTypeMandatoryDescription
optionsOptionsYesConfiguration parameters. Both the key and intention are optional, and the return value varies depending on the parameters passed in.

Return value

TypeDescription
Promise<Array<UnifiedData>>Promise used to return the data deleted.
If only the key is specified in options, the data corresponding to the key deleted is returned.
If only the intention is specified in options, all data in the intention deleted is returned.
If both intention and key are specified, the intersection of the two deleted is returned. If there is no intersection between the two, an error object is returned.

Example

import unifiedDataChannel from '@ohos.data.unifiedDataChannel';
import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

let options: unifiedDataChannel.Options = {
  key: 'udmf://DataHub/com.ohos.test/0123456789'
};

try {
  unifiedDataChannel.deleteData(options).then((data) => {
    console.info(`Succeeded in deleting data. size = ${data.length}`);
    for (let i = 0; i < data.length; i++) {
      let records = data[i].getRecords();
      for (let j = 0; j < records.length; j++) {
        if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
          let text = records[j] as unifiedDataChannel.PlainText;
          console.info(`${i + 1}.${text.textContent}`);
        }
      }
    }
  }).catch((err: BusinessError) => {
    console.error(`Failed to delete data. code is ${err.code},message is ${err.message} `);
  });
} catch (e) {
  let error: BusinessError = e as BusinessError;
  console.error(`Query data throws an exception. code is ${error.code},message is ${error.message} `);
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙APIs

harmony 鸿蒙System Common Events (To Be Deprecated Soon)

harmony 鸿蒙System Common Events

harmony 鸿蒙API Reference Document Description

harmony 鸿蒙Enterprise Device Management Overview (for System Applications Only)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager)

harmony 鸿蒙@ohos.distributedBundle (Distributed Bundle Management)

harmony 鸿蒙@ohos.bundle (Bundle)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (EnterpriseAdminExtensionAbility)

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