0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-07 17:51 ? 次閱讀

分布式數(shù)據(jù)對象

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

說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

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

distributedDataObject.createDistributedObject

createDistributedObject(source: object): DistributedObject

創(chuàng)建一個分布式對象。

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

參數(shù)

參數(shù)名類型必填說明
sourceobject設置distributedObject的屬性。

返回值:

類型說明
[DistributedObject](創(chuàng)建完成的分布式對象。

示例:

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

distributedObject.genSessionId

genSessionId(): string

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

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

返回值:

類型說明
string隨機創(chuàng)建的sessionId。

示例:

import distributedObject from '@ohos.data.distributedDataObject';
var sessionId = distributedObject.genSessionId();

DistributedObject

表示一個分布式對象。

setSessionId

setSessionId(sessionId?: string): boolean

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

需要權限: ohos.permission.DISTRIBUTED_DATASYNC

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

參數(shù):

參數(shù)名類型必填說明
sessionIdstring分布式對象在可信組網(wǎng)中的標識ID。如果要退出分布式組網(wǎng),設置為""或不設置均可。

返回值:

類型說明
booleantrue:標識設置sessionId成功; false:標識設置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());
//設置為""退出分布式組網(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ù)名類型必填說明
typestring事件類型,固定為'change',表示數(shù)據(jù)變更。
callbackCallback<{ sessionId: string, fields: Array }>變更回調(diào)對象實例。 sessionId:標識變更對象的sessionId; fields:標識對象變更的屬性名。

示例:

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

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

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

參數(shù):

參數(shù)名類型必填說明
typestring事件類型,固定為'change',表示數(shù)據(jù)變更。
callbackCallback<{ sessionId: string, fields: Array }>需要刪除的數(shù)據(jù)變更回調(diào),若不設置則刪除該對象所有的數(shù)據(jù)變更回調(diào)。 sessionId:標識變更對象的sessionId; fields:標識對象變更的屬性名。

示例:

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ù)名類型必填說明
typestring事件類型,固定為'status',表示對象上下線。
callbackCallback<{ 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

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

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

參數(shù):

參數(shù)名類型HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿必填說明
typestring事件類型,固定為'status',表示對象上下線。
callbackCallback<{ sessionId: string, deviceId: string, status: 'online''offline' }>
搜狗高速瀏覽器截圖20240326151450.png

示例:

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8447

    瀏覽量

    150720
  • 數(shù)據(jù)管理

    關注

    1

    文章

    285

    瀏覽量

    19592
  • 分布式
    +關注

    關注

    1

    文章

    858

    瀏覽量

    74439
  • 鴻蒙
    +關注

    關注

    57

    文章

    2302

    瀏覽量

    42689
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發(fā)實例:【分布式數(shù)據(jù)管理

    eTS中分布式數(shù)據(jù)管理的使用,包括KVManager對象實例的創(chuàng)建和KVStore數(shù)據(jù)流轉(zhuǎn)的使用。
    的頭像 發(fā)表于 04-11 09:57 ?873次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>實例:【<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)管理</b>】

    HarmonyOS分布式數(shù)據(jù)庫,為啥這么牛?

    ,開發(fā)者無需關注索引引擎實現(xiàn);業(yè)務通過一套接口調(diào)用,就可以建立起應用內(nèi)的索引,同時系統(tǒng)還具備強大的搜索服務,提供了豐富的檢索接口。 03 出色的性能表現(xiàn) 除了實現(xiàn)基礎功能,HarmonyOS
    發(fā)表于 11-19 15:38

    如何通過基于云的數(shù)據(jù)管理技術實現(xiàn)分布式設備的態(tài)勢感知?

    如何通過基于云的數(shù)據(jù)管理技術實現(xiàn)分布式設備的態(tài)勢感知?
    發(fā)表于 05-25 06:56

    鴻蒙分布式任務調(diào)度——數(shù)據(jù)傳遞

    鴻蒙分布式任務調(diào)度之數(shù)據(jù)傳遞
    發(fā)表于 06-12 17:29

    HarmonyOS教程—基于分布式數(shù)據(jù)接口,實現(xiàn)多種設備上一致的數(shù)據(jù)訪問體驗

    1. 如何使用分布式數(shù)據(jù)庫介紹分布式數(shù)據(jù)服務(Distributed Data Service,DDS) 為應用程序提供不同設備間數(shù)據(jù)
    發(fā)表于 09-26 11:40

    新能力讓數(shù)據(jù)多端協(xié)同更便捷,數(shù)據(jù)跨端遷移更高效!

    作者:yijian,終端OS分布式文件系統(tǒng)專家;gongashi,終端OS分布式數(shù)據(jù)管理專家HarmonyOS作為分布式操作系統(tǒng),其分布式
    發(fā)表于 01-11 10:41

    OpenHarmony標準設備應用開發(fā)(三)——分布式數(shù)據(jù)管理

    /js-apis-distributed-data.md數(shù)據(jù)分布式運作示意圖,如下所示。實現(xiàn)步驟:分布式數(shù)據(jù)管理依賴 @
    發(fā)表于 04-07 18:48

    分布式數(shù)據(jù)對象:超級終端的"全局變量"

    分布式應用場景下提供簡單易用的 JS 接口,輕松實現(xiàn)多設備間同應用的數(shù)據(jù)協(xié)同,同時設備間可以監(jiān)聽對象的狀態(tài)和數(shù)據(jù)變更。與傳統(tǒng)方式相比,
    發(fā)表于 06-09 15:18

    【學習打卡】OpenHarmony的分布式數(shù)據(jù)管理介紹

    使用它來做出更明智的決策,如果一個系統(tǒng)缺乏適當?shù)?b class='flag-5'>數(shù)據(jù)管理,那就可能會導致數(shù)據(jù)孤島、數(shù)據(jù)集之間不一致,甚至數(shù)據(jù)本身存在錯誤。有效的分布式
    發(fā)表于 07-15 15:49

    HarmonyOS數(shù)據(jù)管理與應用數(shù)據(jù)持久化(一)

    。 運作機制 數(shù)據(jù)管理模塊包括用戶首選項、鍵值型數(shù)據(jù)管理、關系型數(shù)據(jù)管理、分布式數(shù)據(jù)對象和跨應用
    發(fā)表于 11-01 16:27

    鴻蒙原生應用開發(fā)——分布式數(shù)據(jù)對象

    、分布式數(shù)據(jù)對象保存 6、分布式數(shù)據(jù)對象訂閱(數(shù)據(jù)
    發(fā)表于 12-08 10:01

    分享一個有趣的鴻蒙分布式小游戲

    MainAbilitySlice 里面申請 ? 分布式數(shù)據(jù)管理 ohos.permission.DISTRIBUTED_DATASYNC 允許
    的頭像 發(fā)表于 11-01 14:29 ?2480次閱讀
    分享一個有趣的<b class='flag-5'>鴻蒙</b><b class='flag-5'>分布式</b>小游戲

    分布式數(shù)據(jù)對象的產(chǎn)生背景、原理及開發(fā)案例

    在3月底發(fā)布的OpenHarmony v3.1 Release版本中,新增了分布式數(shù)據(jù)對象特性。什么是分布式數(shù)據(jù)
    的頭像 發(fā)表于 04-27 15:01 ?1185次閱讀
    <b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>對象</b>的產(chǎn)生背景、原理及<b class='flag-5'>開發(fā)</b>案例

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

    使用[@ohos.data.relationalStore]接口和[@ohos.distributedDeviceManager]?接口展示了在eTS中
    的頭像 發(fā)表于 04-11 09:52 ?786次閱讀
    <b class='flag-5'>鴻蒙</b>HarmonyOS<b class='flag-5'>開發(fā)</b>實例:【<b class='flag-5'>分布式</b>關系型<b class='flag-5'>數(shù)據(jù)</b>庫】

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

    分布式數(shù)據(jù)管理為應用程序提供不同設備間數(shù)據(jù)庫的分布式協(xié)同能力。通過調(diào)用分布式數(shù)據(jù)各個
    的頭像 發(fā)表于 06-07 09:30 ?865次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>數(shù)據(jù)管理</b>:【@<b class='flag-5'>ohos.data</b>.distributedData (<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)管理</b>)】