基本數(shù)據(jù)對象的相關(guān)能力

2024-01-23 16:02 更新

本模塊提供管理基本數(shù)據(jù)對象的相關(guān)能力,包括創(chuàng)建、查詢、刪除、修改、訂閱等;同時支持相同應(yīng)用多設(shè)備間的分布式數(shù)據(jù)對象協(xié)同能力。

說明
  • 本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
  • 分布式數(shù)據(jù)對象當(dāng)前僅支持本地功能,分布式功能暫不支持。

導(dǎo)入模塊

  1. import distributedObject from '@ohos.data.distributedDataObject';

distributedObject.create9+

create(context: Context, source: object): DataObject

創(chuàng)建一個分布式數(shù)據(jù)對象。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

context

Context

應(yīng)用的上下文。

FA模型的應(yīng)用Context定義見Context。

Stage模型的應(yīng)用Context定義見Context。

source

object

設(shè)置分布式數(shù)據(jù)對象的屬性。

返回值:

類型

說明

DataObject

創(chuàng)建完成的分布式數(shù)據(jù)對象。

示例:

FA模型示例:

  1. // 導(dǎo)入模塊
  2. import distributedObject from '@ohos.data.distributedDataObject';
  3. import featureAbility from '@ohos.ability.featureAbility';
  4. // 獲取context
  5. let context = featureAbility.getContext();
  6. // 創(chuàng)建對象,該對象包含4個屬性類型:string、number、boolean和Object
  7. let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});

Stage模型示例:

  1. // 導(dǎo)入模塊
  2. import distributedObject from '@ohos.data.distributedDataObject';
  3. import UIAbility from '@ohos.app.ability.UIAbility';
  4. let g_object = null;
  5. class EntryAbility extends UIAbility {
  6. onWindowStageCreate(windowStage){
  7. // 創(chuàng)建對象,該對象包含4個屬性類型:string、number、boolean和Object
  8. g_object = distributedObject.create(this.context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
  9. }
  10. }

distributedObject.genSessionId

genSessionId(): string

隨機創(chuàng)建一個sessionId。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

返回值:

類型

說明

string

隨機創(chuàng)建的sessionId。

示例:

  1. import distributedObject from '@ohos.data.distributedDataObject';
  2. let sessionId = distributedObject.genSessionId();

SaveSuccessResponse9+

save接口回調(diào)信息。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

名稱

類型

必填

說明

sessionId

string

多設(shè)備協(xié)同的唯一標(biāo)識。

version

number

已保存對象的版本。

deviceId

string

存儲數(shù)據(jù)的設(shè)備號,標(biāo)識需要保存對象的設(shè)備。"local"表示本地設(shè)備,否則表示其他設(shè)備的設(shè)備號。

RevokeSaveSuccessResponse9+

revokeSave接口回調(diào)信息。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

名稱

類型

必填

說明

sessionId

string

多設(shè)備協(xié)同的唯一標(biāo)識。

DataObject

表示一個分布式數(shù)據(jù)對象。在使用以下接口前,需調(diào)用create()獲取DataObject對象。

setSessionId9+

setSessionId(sessionId: string, callback: AsyncCallback<void>): void

設(shè)置sessionId,使用callback異步回調(diào)。當(dāng)可信組網(wǎng)中有多個設(shè)備時,多個設(shè)備間的對象如果設(shè)置為同一個sessionId,就能自動同步。

需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

sessionId

string

分布式數(shù)據(jù)對象在可信組網(wǎng)中的標(biāo)識ID。設(shè)置為""時表示退出分布式組網(wǎng)。

callback

AsyncCallback<void>

加入session的異步回調(diào)。

錯誤碼:

以下錯誤碼的詳細介紹參見分布式數(shù)據(jù)對象錯誤碼。

錯誤碼ID

錯誤信息

15400001

Create table failed.

示例:

  1. // g_object加入分布式組網(wǎng)
  2. g_object.setSessionId(distributedObject.genSessionId(), ()=>{
  3. console.info("join session");
  4. });
  5. // 退出分布式組網(wǎng)
  6. g_object.setSessionId(() => {
  7. console.info("leave all session.");
  8. });

setSessionId9+

setSessionId(callback: AsyncCallback<void>): void

退出所有已加入的session,使用callback方式異步回調(diào)。

需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

退出所有已加入session的異步回調(diào)。

錯誤碼:

以下錯誤碼的詳細介紹參見分布式數(shù)據(jù)對象錯誤碼。

錯誤碼ID

錯誤信息

15400001

Create table failed.

示例:

  1. // g_object加入分布式組網(wǎng)
  2. g_object.setSessionId(distributedObject.genSessionId(), ()=>{
  3. console.info("join session");
  4. });
  5. // 退出分布式組網(wǎng)
  6. g_object.setSessionId(() => {
  7. console.info("leave all lession.");
  8. });

setSessionId9+

setSessionId(sessionId?: string): Promise<void>

設(shè)置sessionId,使用Promise異步回調(diào)。當(dāng)可信組網(wǎng)中有多個設(shè)備時,多個設(shè)備間的對象如果設(shè)置為同一個sessionId,就能自動同步。

需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

sessionId

string

分布式數(shù)據(jù)對象在可信組網(wǎng)中的標(biāo)識ID。如果要退出分布式組網(wǎng),設(shè)置為""或不設(shè)置均可。

返回值:

類型

說明

Promise<void>

Promise對象。

錯誤碼:

以下錯誤碼的詳細介紹參見分布式數(shù)據(jù)對象錯誤碼。

錯誤碼ID

錯誤信息

15400001

Create table failed.

示例:

  1. // g_object加入分布式組網(wǎng)
  2. g_object.setSessionId(distributedObject.genSessionId()).then (()=>{
  3. console.info("join session.");
  4. }).catch((error)=>{
  5. console.info("error:" + error.code + error.message);
  6. });
  7. // 退出分布式組網(wǎng)
  8. g_object.setSessionId().then (()=>{
  9. console.info("leave all lession.");
  10. }).catch((error)=>{
  11. console.info("error:" + error.code + error.message);
  12. });

on('change')9+

on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<string> }>): void

監(jiān)聽分布式數(shù)據(jù)對象的數(shù)據(jù)變更。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'change',表示數(shù)據(jù)變更。

callback

Callback<{ sessionId: string, fields: Array<string> }>

變更回調(diào)對象實例。

sessionId:標(biāo)識變更對象的sessionId;

fields:標(biāo)識對象變更的屬性名。

示例:

  1. globalThis.changeCallback = (sessionId, changeData) => {
  2. console.info("change" + sessionId);
  3. if (changeData != null && changeData != undefined) {
  4. changeData.forEach(element => {
  5. console.info("changed !" + element + " " + g_object[element]);
  6. });
  7. }
  8. }
  9. g_object.on("change", globalThis.changeCallback);

off('change')9+

off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array<string> }>): void

當(dāng)不再進行數(shù)據(jù)變更監(jiān)聽時,使用此接口刪除對象的變更監(jiān)聽。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'change',表示數(shù)據(jù)變更。

callback

Callback<{ sessionId: string, fields: Array<string> }>

需要刪除的數(shù)據(jù)變更回調(diào),若不設(shè)置則刪除該對象所有的數(shù)據(jù)變更回調(diào)。

sessionId:標(biāo)識變更對象的sessionId;

fields:標(biāo)識對象變更的屬性名。

示例:

  1. // 刪除數(shù)據(jù)變更回調(diào)changeCallback
  2. g_object.off("change", globalThis.changeCallback);
  3. // 刪除所有的數(shù)據(jù)變更回調(diào)
  4. g_object.off("change");

on('status')9+

on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }>): void

監(jiān)聽分布式數(shù)據(jù)對象的上下線。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'status',表示對象上下線。

callback

Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }>

監(jiān)聽上下線回調(diào)實例。

sessionId:標(biāo)識變更對象的sessionId;

networkId:標(biāo)識對象設(shè)備,即deviceId;

status:標(biāo)識對象為'online'(上線)或'offline'(下線)的狀態(tài)。

示例:

  1. globalThis.statusCallback = (sessionId, networkId, status) => {
  2. globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
  3. }
  4. g_object.on("status", globalThis.statusCallback);

off('status')9+

off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, status: 'online' | 'offline' }>): void

當(dāng)不再進行對象上下線監(jiān)聽時,使用此接口刪除對象的上下線監(jiān)聽。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'status',表示對象上下線。

callback

Callback<{ sessionId: string, deviceId: string, status: 'online' | 'offline' }>

需要刪除的上下線回調(diào),若不設(shè)置則刪除該對象所有的上下線回調(diào)。

sessionId:標(biāo)識變更對象的sessionId;

deviceId:標(biāo)識變更對象的deviceId;

status:標(biāo)識對象為'online'(上線)或'offline'(下線)的狀態(tài)。

示例:

  1. globalThis.statusCallback = (sessionId, networkId, status) => {
  2. globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
  3. }
  4. // 刪除上下線回調(diào)changeCallback
  5. g_object.off("status",globalThis.statusCallback);
  6. // 刪除所有的上下線回調(diào)
  7. g_object.off("status");

save9+

save(deviceId: string, callback: AsyncCallback<SaveSuccessResponse>): void

保存分布式數(shù)據(jù)對象。使用callback方式異步回調(diào)。

對象數(shù)據(jù)保存成功后,當(dāng)應(yīng)用存在時不會釋放對象數(shù)據(jù),當(dāng)應(yīng)用退出后,重新進入應(yīng)用時,恢復(fù)保存在設(shè)備上的數(shù)據(jù)。

有以下幾種情況時,保存的數(shù)據(jù)將會被釋放:

  • 存儲時間超過24小時。
  • 應(yīng)用卸載。
  • 成功恢復(fù)數(shù)據(jù)之后。
說明

當(dāng)前HarmonyOS設(shè)備均不支持此接口,應(yīng)用調(diào)用此接口將返回801錯誤碼。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

deviceId

string

保存數(shù)據(jù)的deviceId,當(dāng)deviceId為"local",代表存儲在本地設(shè)備。

callback

AsyncCallback<SaveSuccessResponse>

回調(diào)函數(shù)。返回SaveSuccessResponse,包含sessionId、version、deviceId等信息。

示例:

  1. g_object.setSessionId("123456");
  2. g_object.save("local", (err, result) => {
  3. if (err) {
  4. console.info("save failed, error code = " + err.code);
  5. console.info("save failed, error message: " + err.message);
  6. return;
  7. }
  8. console.info("save callback");
  9. console.info("save sessionId: " + result.sessionId);
  10. console.info("save version: " + result.version);
  11. console.info("save deviceId: " + result.deviceId);
  12. });

save9+

save(deviceId: string): Promise<SaveSuccessResponse>

保存分布式數(shù)據(jù)對象。使用Promise方式作為異步回調(diào)。

對象數(shù)據(jù)保存成功后,當(dāng)應(yīng)用存在時不會釋放對象數(shù)據(jù),當(dāng)應(yīng)用退出后,重新進入應(yīng)用時,恢復(fù)保存在設(shè)備上的數(shù)據(jù)。

有以下幾種情況時,保存的數(shù)據(jù)將會被釋放:

  • 存儲時間超過24小時。
  • 應(yīng)用卸載。
  • 成功恢復(fù)數(shù)據(jù)之后。
說明

當(dāng)前HarmonyOS設(shè)備均不支持此接口,應(yīng)用調(diào)用此接口將返回801錯誤碼。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

deviceId

string

保存數(shù)據(jù)的設(shè)備號,當(dāng)deviceId默認為"local",標(biāo)識需要保存對象的設(shè)備。

返回值:

類型

說明

Promise<SaveSuccessResponse>

Promise對象。返回SaveSuccessResponse,包含sessionId、version、deviceId等信息。

示例:

  1. g_object.setSessionId("123456");
  2. g_object.save("local").then((result) => {
  3. console.info("save callback");
  4. console.info("save sessionId " + result.sessionId);
  5. console.info("save version " + result.version);
  6. console.info("save deviceId " + result.deviceId);
  7. }).catch((err) => {
  8. console.info("save failed, error code = " + err.code);
  9. console.info("save failed, error message: " + err.message);
  10. });

revokeSave9+

revokeSave(callback: AsyncCallback<RevokeSaveSuccessResponse>): void

撤回保存的分布式數(shù)據(jù)對象。使用callback方式作為異步方法。

如果對象保存在本地設(shè)備,那么將刪除所有受信任設(shè)備上所保存的數(shù)據(jù)。

如果對象保存在其他設(shè)備,那么將刪除本地設(shè)備上的數(shù)據(jù)。

說明

當(dāng)前HarmonyOS設(shè)備均不支持此接口,應(yīng)用調(diào)用此接口將返回801錯誤碼。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<RevokeSaveSuccessResponse>

回調(diào)函數(shù)。返回RevokeSaveSuccessResponse,包含sessionId。

示例:

  1. g_object.setSessionId("123456");
  2. // 持久化數(shù)據(jù)
  3. g_object.save("local", (err, result) => {
  4. if (err) {
  5. console.info("save failed, error code = " + err.code);
  6. console.info("save failed, error message: " + err.message);
  7. return;
  8. }
  9. console.info("save callback");
  10. console.info("save sessionId: " + result.sessionId);
  11. console.info("save version: " + result.version);
  12. console.info("save deviceId: " + result.deviceId);
  13. });
  14. // 刪除持久化保存的數(shù)據(jù)
  15. g_object.revokeSave((err, result) => {
  16. if (err) {
  17. console.info("revokeSave failed, error code = " + err.code);
  18. console.info("revokeSave failed, error message: " + err.message);
  19. return;
  20. }
  21. console.info("revokeSave callback");
  22. console.info("revokeSave sessionId " + result.sessionId);
  23. });

revokeSave9+

revokeSave(): Promise<RevokeSaveSuccessResponse>

撤回保存的分布式數(shù)據(jù)對象。使用Promise方式作為異步方法。

如果對象保存在本地設(shè)備,那么將刪除所有受信任設(shè)備上所保存的數(shù)據(jù)。

如果對象保存在其他設(shè)備,那么將刪除本地設(shè)備上的數(shù)據(jù)。

說明

當(dāng)前HarmonyOS設(shè)備均不支持此接口,應(yīng)用調(diào)用此接口將返回801錯誤碼。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

返回值:

類型

說明

Promise<RevokeSaveSuccessResponse>

Promise對象。返回RevokeSaveSuccessResponse,包含sessionId。

示例:

  1. g_object.setSessionId("123456");
  2. // 持久化數(shù)據(jù)
  3. g_object.save("local").then((result) => {
  4. console.info("save callback");
  5. console.info("save sessionId " + result.sessionId);
  6. console.info("save version " + result.version);
  7. console.info("save deviceId " + result.deviceId);
  8. }).catch((err) => {
  9. console.info("save failed, error code = " + err.code);
  10. console.info("save failed, error message: " + err.message);
  11. });
  12. // 刪除持久化保存的數(shù)據(jù)
  13. g_object.revokeSave().then((result) => {
  14. console.info("revokeSave callback");
  15. console.info("sessionId" + result.sessionId);
  16. }).catch((err)=> {
  17. console.info("revokeSave failed, error code = " + err.code);
  18. console.info("revokeSave failed, error message = " + err.message);
  19. });

distributedObject.createDistributedObject(deprecated)

createDistributedObject(source: object): DistributedObject

創(chuàng)建一個分布式數(shù)據(jù)對象。

說明

從 API Version 8 開始支持,從 API Version 9 開始廢棄,建議使用distributedObject.create替代。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

source

object

設(shè)置分布式數(shù)據(jù)對象的屬性。

返回值:

類型

說明

DistributedObject

創(chuàng)建完成的分布式數(shù)據(jù)對象。

示例:

  1. import distributedObject from '@ohos.data.distributedDataObject';
  2. // 創(chuàng)建對象,對象包含4個屬性類型,string,number,boolean和Object
  3. let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});

DistributedObject(deprecated)

表示一個分布式數(shù)據(jù)對象。在使用以下接口前,需調(diào)用createDistributedObject()獲取DistributedObject對象。

setSessionId(deprecated)

setSessionId(sessionId?: string): boolean

設(shè)置sessionId,當(dāng)可信組網(wǎng)中有多個設(shè)備時,多個設(shè)備間的對象如果設(shè)置為同一個sessionId,就能自動同步。

說明

從 API Version 8 開始支持,從 API Version 9 開始廢棄,建議使用setSessionId替代。

需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

sessionId

string

分布式數(shù)據(jù)對象在可信組網(wǎng)中的標(biāo)識ID。如果要退出分布式組網(wǎng),設(shè)置為""或不設(shè)置均可。

返回值:

類型

說明

boolean

true:標(biāo)識設(shè)置sessionId成功。

false:標(biāo)識設(shè)置sessionId失敗。

示例:

  1. import distributedObject from '@ohos.data.distributedDataObject';
  2. let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});;
  3. // g_object加入分布式組網(wǎng)
  4. g_object.setSessionId(distributedObject.genSessionId());
  5. // 設(shè)置為""退出分布式組網(wǎng)
  6. g_object.setSessionId("");

on('change')(deprecated)

on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<string> }>): void

監(jiān)聽分布式數(shù)據(jù)對象的變更。

說明

從 API Version 8 開始支持,從 API Version 9 開始廢棄,建議使用on('change')替代。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'change',表示數(shù)據(jù)變更。

callback

Callback<{ sessionId: string, fields: Array<string> }>

變更回調(diào)對象實例。

sessionId:標(biāo)識變更對象的sessionId;

fields:標(biāo)識對象變更的屬性名。

示例:

  1. import distributedObject from '@ohos.data.distributedDataObject';
  2. let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
  3. globalThis.changeCallback = (sessionId, changeData) => {
  4. console.info("change" + sessionId);
  5. if (changeData != null && changeData != undefined) {
  6. changeData.forEach(element => {
  7. console.info("changed !" + element + " " + g_object[element]);
  8. });
  9. }
  10. }
  11. g_object.on("change", globalThis.changeCallback);

off('change')(deprecated)

off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array<string> }>): void

當(dāng)不再進行數(shù)據(jù)變更監(jiān)聽時,使用此接口刪除對象的變更監(jiān)聽。

說明

從 API Version 8 開始支持,從 API Version 9 開始廢棄,建議使用off('change')替代。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'change',表示數(shù)據(jù)變更。

callback

Callback<{ sessionId: string, fields: Array<string> }>

需要刪除的數(shù)據(jù)變更回調(diào),若不設(shè)置則刪除該對象所有的數(shù)據(jù)變更回調(diào)。

sessionId:標(biāo)識變更對象的sessionId;

fields:標(biāo)識對象變更的屬性名。

示例:

  1. import distributedObject from '@ohos.data.distributedDataObject';
  2. let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
  3. // 刪除數(shù)據(jù)變更回調(diào)changeCallback
  4. g_object.off("change", globalThis.changeCallback);
  5. // 刪除所有的數(shù)據(jù)變更回調(diào)
  6. g_object.off("change");

on('status')(deprecated)

on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }>): void

監(jiān)聽分布式數(shù)據(jù)對象的上下線。

說明

從 API Version 8 開始支持,從 API Version 9 開始廢棄,建議使用on('status')替代。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'status',表示對象上下線。

callback

Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }>

監(jiān)聽上下線回調(diào)實例。

sessionId:標(biāo)識變更對象的sessionId;

networkId:標(biāo)識對象設(shè)備,即deviceId;

status:標(biāo)識對象為'online'(上線)或'offline'(下線)的狀態(tài)。

示例:

  1. import distributedObject from '@ohos.data.distributedDataObject';
  2. globalThis.statusCallback = (sessionId, networkId, status) => {
  3. globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
  4. }
  5. let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
  6. g_object.on("status", globalThis.statusCallback);

off('status')(deprecated)

off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, status: 'online' | 'offline' }>): void

當(dāng)不再進行對象上下線監(jiān)聽時,使用此接口刪除對象的上下線監(jiān)聽。

說明

從 API Version 8 開始支持,從 API Version 9 開始廢棄,建議使用off('status')替代。

系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,固定為'status',表示對象上下線。

callback

Callback<{ sessionId: string, deviceId: string, status: 'online' | 'offline' }>

需要刪除的上下線回調(diào),若不設(shè)置則刪除該對象所有的上下線回調(diào)。

sessionId:標(biāo)識變更對象的sessionId;

deviceId:標(biāo)識變更對象的deviceId;

status:標(biāo)識對象為'online'(上線)或'offline'(下線)的狀態(tài)。

示例:

  1. import distributedObject from '@ohos.data.distributedDataObject';
  2. let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
  3. globalThis.statusCallback = (sessionId, networkId, status) => {
  4. globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
  5. }
  6. // 刪除上下線回調(diào)changeCallback
  7. g_object.off("status",globalThis.statusCallback);
  8. // 刪除所有的上下線回調(diào)
  9. g_object.off("status");
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號