分布式數(shù)據(jù)對象
本模塊提供管理基本數(shù)據(jù)對象的相關(guān)能力,包括創(chuàng)建、查詢、刪除、修改、訂閱等;同時支持相同應(yīng)用多設(shè)備間的分布式數(shù)據(jù)對象協(xié)同能力。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
導(dǎo)入模塊
import distributedObject from '@ohos.data.distributedDataObject';
distributedDataObject.createDistributedObject
createDistributedObject(source: object): DistributedObject
創(chuàng)建一個分布式對象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
source | object | 是 | 設(shè)置distributedObject的屬性。 |
返回值:
類型 | 說明 |
---|---|
[DistributedObject]( | 創(chuàng)建完成的分布式對象。 |
示例:
import distributedObject from '@ohos.data.distributedDataObject';
// 創(chuàng)建對象,對象包含4個屬性類型,string,number,boolean和Object
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,
parent:{mother:"jack mom",father:"jack Dad"}});
distributedObject.genSessionId
genSessionId(): string
隨機(jī)創(chuàng)建一個sessionId。
系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject。
返回值:
類型 | 說明 |
---|---|
string | 隨機(jī)創(chuàng)建的sessionId。 |
示例:
import distributedObject from '@ohos.data.distributedDataObject';
var sessionId = distributedObject.genSessionId();
DistributedObject
表示一個分布式對象。
setSessionId
setSessionId(sessionId?: string): boolean
設(shè)置同步的sessionId,當(dāng)可信組網(wǎng)中有多個設(shè)備時,多個設(shè)備間的對象如果設(shè)置為同一個sessionId,就能自動同步。
需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC
系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
sessionId | string | 否 | 分布式對象在可信組網(wǎng)中的標(biāo)識ID。如果要退出分布式組網(wǎng),設(shè)置為""或不設(shè)置均可。 |
返回值:
類型 | 說明 |
---|---|
boolean | true:標(biāo)識設(shè)置sessionId成功; false:標(biāo)識設(shè)置sessionId失敗。 |
示例:
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,
parent:{mother:"jack mom",father:"jack Dad"}});
//g_object加入分布式組網(wǎng)
g_object.setSessionId(distributedObject.genSessionId());
//設(shè)置為""退出分布式組網(wǎng)
g_object.setSessionId("");
on('change')
on(type: 'change', callback: Callback<{ sessionId: string, fields: Array }>): void
監(jiān)聽分布式對象的變更。
系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 事件類型,固定為'change',表示數(shù)據(jù)變更。 |
callback | Callback<{ sessionId: string, fields: Array }> | 是 | 變更回調(diào)對象實例。 sessionId:標(biāo)識變更對象的sessionId; fields:標(biāo)識對象變更的屬性名。 |
示例:
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
globalThis.changeCallback = (sessionId, changeData) = > {
console.info("change" + sessionId);
if (changeData != null && changeData != undefined) {
changeData.forEach(element = > {
console.info("changed !" + element + " " + g_object[element]);
});
}
}
g_object.on("change", globalThis.changeCallback);
off('change')
off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array }>): void
當(dāng)不再進(jìn)行數(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 }> | 否 | 需要刪除的數(shù)據(jù)變更回調(diào),若不設(shè)置則刪除該對象所有的數(shù)據(jù)變更回調(diào)。 sessionId:標(biāo)識變更對象的sessionId; fields:標(biāo)識對象變更的屬性名。 |
示例:
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
//刪除數(shù)據(jù)變更回調(diào)changeCallback
g_object.off("change", globalThis.changeCallback);
//刪除所有的數(shù)據(jù)變更回調(diào)
g_object.off("change");
on('status')
on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }>): void
監(jiān)聽分布式對象的上下線。
系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject。
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 事件類型,固定為'status',表示對象上下線。 |
callback | Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }> | 是 |
示例:
import distributedObject from '@ohos.data.distributedDataObject';
globalThis.statusCallback = (sessionId, networkId, status) = > {
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
}
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
g_object.on("status", globalThis.statusCallback);
off('status')
off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, status: 'online' | 'offline' }>): void
當(dāng)不再進(jìn)行對象上下線監(jiān)聽時,使用此接口刪除對象的上下線監(jiān)聽。
系統(tǒng)能力: SystemCapability.DistributedDataManager.DataObject.DistributedObject。
參數(shù):
參數(shù)名 | 類型HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 事件類型,固定為'status',表示對象上下線。 |
callback | Callback<{ sessionId: string, deviceId: string, status: 'online' | 'offline' }> | 否 |
![]() |
示例:
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
globalThis.statusCallback = (sessionId, networkId, status) = > {
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
}
//刪除上下線回調(diào)changeCallback
g_object.off("status",globalThis.statusCallback);
//刪除所有的上下線回調(diào)
g_object.off("status");
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8867瀏覽量
152909 -
數(shù)據(jù)管理
+關(guān)注
關(guān)注
1文章
308瀏覽量
19881 -
分布式
+關(guān)注
關(guān)注
1文章
969瀏覽量
75062 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2466瀏覽量
43608
發(fā)布評論請先 登錄
相關(guān)推薦
HarmonyOS開發(fā)實例:【分布式數(shù)據(jù)管理】

HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)
HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)文件資產(chǎn)遷移
HarmonyOS分布式數(shù)據(jù)庫,為啥這么牛?
如何通過基于云的數(shù)據(jù)管理技術(shù)實現(xiàn)分布式設(shè)備的態(tài)勢感知?
新能力讓數(shù)據(jù)多端協(xié)同更便捷,數(shù)據(jù)跨端遷移更高效!
OpenHarmony標(biāo)準(zhǔn)設(shè)備應(yīng)用開發(fā)(三)——分布式數(shù)據(jù)管理
分布式數(shù)據(jù)對象:超級終端的"全局變量"
【學(xué)習(xí)打卡】OpenHarmony的分布式數(shù)據(jù)管理介紹
HarmonyOS數(shù)據(jù)管理與應(yīng)用數(shù)據(jù)持久化(一)
鴻蒙原生應(yīng)用開發(fā)——分布式數(shù)據(jù)對象
分布式數(shù)據(jù)對象的產(chǎn)生背景、原理及開發(fā)案例

鴻蒙HarmonyOS開發(fā)實例:【分布式關(guān)系型數(shù)據(jù)庫】

鴻蒙開發(fā)接口數(shù)據(jù)管理:【@ohos.data.distributedData (分布式數(shù)據(jù)管理)】

評論