diff --git a/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-distributedobject.md b/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-distributedobject.md index 511e221db476580f5898f4af8d51cea19752bdf8..9cc580d5a97a929253d5d2ef3ec7efbc62b9ad60 100644 --- a/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-distributedobject.md +++ b/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-distributedobject.md @@ -180,6 +180,19 @@ type StatusObserver = (sessionId: string, networkId: string, status: string) => | networkId | string | 是 | 对端设备的网络标识。要求字符串非空且长度不超过255字节。 | | status | string | 是 | 标识分布式对象的状态,可能的取值有'online'(上线)、'offline'(下线)和'restore'(恢复)。 | +## ProgressObserver20+ + +type ProgressObserver = (sessionId: string, progress: number) => void + +定义传输进度的监听回调函数。 + +**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| sessionId | string | 是 | 标识变更对象的sessionId。长度不大于128字节,且只能包含字母、数字或下划线_。 | +| progress | number | 是 | 标识资产传输进度。取值范围为[-1, 100],取值为整数,-1表示获取进度失败,100表示传输完成。 | + ## DataObject 表示一个分布式数据对象。在使用以下接口前,需调用[create()](#distributeddataobjectcreate9)获取DataObject对象。 @@ -971,6 +984,75 @@ try { } ``` +### on('progressChanged')20+ + +on(type: 'progressChanged', callback: ProgressObserver): void + +监听资产传输进度。 + +**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| type | string | 是 | 事件类型,固定为'progressChanged',表示资产传输进度变化事件。 | +| callback | [ProgressObserver](#progressobserver20) | 是 | 表示资产传输进度变化的回调实例。 | + +**示例:** + +```ts +const progressChangedCallback: distributedDataObject.ProgressObserver = (sessionId: string, progress: number) => { + console.info("progressChanged callback" + sessionId); + console.info("progressChanged callback" + progress); +} +try { + g_object.on("progressChanged", progressChangedCallback); +} catch (error) { + console.error("Execute failed, error code = " + error.code); +} +``` + +### off('progressChanged')20+ + +off(type: 'progressChanged', callback?: ProgressObserver): void + +当不再进行资产传输进度监听时,使用此接口取消监听。 + +**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| type | string | 是 | 事件类型,固定为'progressChanged',表示资产传输进度变化事件。 | +| callback | [ProgressObserver](#progressobserver20) | 否 | 需要取消监听的事件回调,若不设置,则取消对该事件的所有监听。 | + +**示例:** + +```ts +const progressChangedCallback1: distributedDataObject.ProgressObserver = (sessionId: string, progress: number) => { + console.info("progressChanged callback1" + sessionId); + console.info("progressChanged callback1" + progress); +} + +const progressChangedCallback2: distributedDataObject.ProgressObserver = (sessionId: string, progress: number) => { + console.info("progressChanged callback2" + sessionId); + console.info("progressChanged callback2" + progress); +} +try { + g_object.on("progressChanged", progressChangedCallback1); + // 取消对资产传输进度的监听 + g_object.off("progressChanged", progressChangedCallback1); + + g_object.on("progressChanged", progressChangedCallback1); + g_object.on("progressChanged", progressChangedCallback2); + //取消对资产传输进度的所有监听 + g_object.off("progressChanged"); +} catch (error) { + console.error("Execute failed, error code = " + error.code); +} +``` ### setAsset20+ setAsset(assetKey: string, uri: string): Promise<void>