提交 40a22713 编写于 作者: L LiRui

modify object arkts

Signed-off-by: NLiRui <lirui.WX1229126@huawei.com>
上级 c4747199
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
1. 导入`@ohos.data.preferences`模块。 1. 导入`@ohos.data.preferences`模块。
```js ```ts
import dataPreferences from '@ohos.data.preferences'; import dataPreferences from '@ohos.data.preferences';
``` ```
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
Stage模型示例: Stage模型示例:
```js ```ts
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import { BusinessError } from '@ohos.base'; import { BusinessError } from '@ohos.base';
import window from '@ohos.window'; import window from '@ohos.window';
...@@ -73,7 +73,9 @@ ...@@ -73,7 +73,9 @@
// 请确保获取到Preferences实例后,再进行相关数据操作 // 请确保获取到Preferences实例后,再进行相关数据操作
}) })
} catch (err) { } catch (err) {
console.error(`Failed to get preferences. Code:${err.code},message:${err.message}`); let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`Failed to get preferences. Code:${code},message:${message}`);
} }
} }
} }
...@@ -82,7 +84,7 @@ ...@@ -82,7 +84,7 @@
FA模型示例: FA模型示例:
```js ```ts
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
import { BusinessError } from '@ohos.base'; import { BusinessError } from '@ohos.base';
...@@ -99,7 +101,9 @@ ...@@ -99,7 +101,9 @@
// 请确保获取到Preferences实例后,再进行相关数据操作 // 请确保获取到Preferences实例后,再进行相关数据操作
}) })
} catch (err) { } catch (err) {
console.error(`Failed to get preferences. Code is ${err.code},message:${err.message}`); let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`Failed to get preferences. Code is ${code},message:${message}`);
} }
``` ```
...@@ -114,7 +118,7 @@ ...@@ -114,7 +118,7 @@
示例代码如下所示: 示例代码如下所示:
```js ```ts
try { try {
if (preferences.hasSync('startup')) { if (preferences.hasSync('startup')) {
console.info("The key 'startup' is contained."); console.info("The key 'startup' is contained.");
...@@ -124,7 +128,9 @@ ...@@ -124,7 +128,9 @@
preferences.putSync('startup', 'auto'); preferences.putSync('startup', 'auto');
} }
} catch (err) { } catch (err) {
console.error(`Failed to check the key 'startup'. Code:${err.code}, message:${err.message}`); let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`Failed to check the key 'startup'. Code:${code}, message:${message}`);
} }
``` ```
...@@ -132,12 +138,14 @@ ...@@ -132,12 +138,14 @@
使用getSync()方法获取数据,即指定键对应的值。如果值为null或者非默认值类型,则返回默认数据。示例代码如下所示: 使用getSync()方法获取数据,即指定键对应的值。如果值为null或者非默认值类型,则返回默认数据。示例代码如下所示:
```js ```ts
try { try {
let val = preferences.getSync('startup', 'default'); let val = preferences.getSync('startup', 'default');
console.info(`Succeeded in getting value of 'startup'. val: ${val}.`); console.info(`Succeeded in getting value of 'startup'. val: ${val}.`);
} catch (err) { } catch (err) {
console.error(`Failed to get value of 'startup'. Code:${err.code}, message:${err.message}`); let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`Failed to get value of 'startup'. Code:${code}, message:${message}`);
} }
``` ```
...@@ -146,11 +154,13 @@ ...@@ -146,11 +154,13 @@
使用deleteSync()方法删除指定键值对,示例代码如下所示: 使用deleteSync()方法删除指定键值对,示例代码如下所示:
```js ```ts
try { try {
preferences.deleteSync('startup'); preferences.deleteSync('startup');
} catch (err) { } catch (err) {
console.error(`Failed to delete the key 'startup'. Code:${err.code}, message:${err.message}`); let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`Failed to delete the key 'startup'. Code:${code}, message:${message}`);
} }
``` ```
...@@ -158,7 +168,7 @@ ...@@ -158,7 +168,7 @@
应用存入数据到Preferences实例后,可以使用flush()方法实现数据持久化。示例代码如下所示: 应用存入数据到Preferences实例后,可以使用flush()方法实现数据持久化。示例代码如下所示:
```js ```ts
try { try {
preferences.flush((err: BusinessError) => { preferences.flush((err: BusinessError) => {
if (err) { if (err) {
...@@ -168,7 +178,9 @@ ...@@ -168,7 +178,9 @@
console.info('Succeeded in flushing.'); console.info('Succeeded in flushing.');
}) })
} catch (err) { } catch (err) {
console.error(`Failed to flush. Code:${err.code}, message:${err.message}`); let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`Failed to flush. Code:${code}, message:${message}`);
} }
``` ```
...@@ -176,7 +188,7 @@ ...@@ -176,7 +188,7 @@
应用订阅数据变更需要指定observer作为回调方法。订阅的Key值发生变更后,当执行flush()方法时,observer被触发回调。示例代码如下所示: 应用订阅数据变更需要指定observer作为回调方法。订阅的Key值发生变更后,当执行flush()方法时,observer被触发回调。示例代码如下所示:
```js ```ts
interface observer { interface observer {
key: string key: string
} }
...@@ -213,7 +225,7 @@ ...@@ -213,7 +225,7 @@
示例代码如下所示: 示例代码如下所示:
```js ```ts
try { try {
dataPreferences.deletePreferences(this.context, 'myStore', (err: BusinessError) => { dataPreferences.deletePreferences(this.context, 'myStore', (err: BusinessError) => {
if (err) { if (err) {
...@@ -223,7 +235,9 @@ ...@@ -223,7 +235,9 @@
console.info('Succeeded in deleting preferences.'); console.info('Succeeded in deleting preferences.');
}) })
} catch (err) { } catch (err) {
console.error(`Failed to delete preferences. Code:${err.code}, message:${err.message}`); let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`Failed to delete preferences. Code:${code}, message:${message}`);
} }
``` ```
......
...@@ -115,6 +115,7 @@ ...@@ -115,6 +115,7 @@
## 接口说明 ## 接口说明
以下是分布式对象跨设备数据同步功能的相关接口,大部分为异步接口。异步接口均有callback和Promise两种返回形式,下表均以callback形式为例,更多接口及使用方式请见[分布式数据对象](../reference/apis/js-apis-data-distributedobject.md) 以下是分布式对象跨设备数据同步功能的相关接口,大部分为异步接口。异步接口均有callback和Promise两种返回形式,下表均以callback形式为例,更多接口及使用方式请见[分布式数据对象](../reference/apis/js-apis-data-distributedobject.md)
本模块接口仅支持在JS文件中使用。
| 接口名称 | 描述 | | 接口名称 | 描述 |
| -------- | -------- | | -------- | -------- |
...@@ -151,26 +152,17 @@ ...@@ -151,26 +152,17 @@
// 导入模块 // 导入模块
import distributedDataObject from '@ohos.data.distributedDataObject'; import distributedDataObject from '@ohos.data.distributedDataObject';
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import { BusinessError } from '@ohos.base';
import window from '@ohos.window';
interface sourceObject{
name: string,
age: number,
isVis: boolean
parent: { [key: string]: string },
list: { [key: string]: string }[]
}
class EntryAbility extends UIAbility { class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage) { onWindowStageCreate(windowStage) {
let source: sourceObject = { // 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let localObject = distributedDataObject.create(this.context, {
name: 'jack', name: 'jack',
age: 18, age: 18,
isVis: false, isVis: false,
parent: { mother: 'jack mom', father: 'jack Dad' }, parent: { mother: 'jack mom', father: 'jack Dad' },
list: [{ mother: 'jack mom' }, { father: 'jack Dad' }] list: [{ mother: 'jack mom' }, { father: 'jack Dad' }]
} });
let localObject: distributedDataObject.DataObject = distributedDataObject.create(this.context, source);
} }
} }
``` ```
...@@ -184,43 +176,34 @@ ...@@ -184,43 +176,34 @@
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
// 获取context // 获取context
let context = featureAbility.getContext(); let context = featureAbility.getContext();
interface sourceObject{ // 创建对象,该对象包含4个属性类型:string、number、boolean和Object
name: string, let localObject = distributedDataObject.create(context, {
age: number,
isVis: boolean
parent: { [key: string]: string },
list: { [key: string]: string }[]
}
let source: sourceObject = {
name: 'jack', name: 'jack',
age: 18, age: 18,
isVis: false, isVis: false,
parent: { mother: 'jack mom', father: 'jack Dad' }, parent: { mother: 'jack mom', father: 'jack Dad' },
list: [{ mother: 'jack mom' }, { father: 'jack Dad' }] list: [{ mother: 'jack mom' }, { father: 'jack Dad' }]
} });
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let localObject: distributedDataObject.DataObject = distributedDataObject.create(context, source);
``` ```
4. 加入同步组网。同步组网中的数据对象分为发起方和被拉起方。 4. 加入同步组网。同步组网中的数据对象分为发起方和被拉起方。
```js ```js
// 设备1加入sessionId // 设备1加入sessionId
let sessionId: string = '123456'; let sessionId = '123456';
localObject.setSessionId(sessionId); localObject.setSessionId(sessionId);
// 和设备1协同的设备2加入同一个session // 和设备1协同的设备2加入同一个session
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object // 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let remoteSource: sourceObject = { let remoteObject = distributedDataObject.create(this.context, {
name: undefined, name: undefined,
age: undefined, // undefined表示数据来自对端 age: undefined, // undefined表示数据来自对端
isVis: true, isVis: true,
parent: undefined, parent: undefined,
list: undefined list: undefined
} });
let remoteObject: distributedDataObject.DataObject = distributedDataObject.create(this.context, remoteSource);
// 收到status上线后remoteObject同步数据,即name变成jack,age是18 // 收到status上线后remoteObject同步数据,即name变成jack,age是18
remoteObject.setSessionId(sessionId); remoteObject.setSessionId(sessionId);
``` ```
...@@ -228,19 +211,18 @@ ...@@ -228,19 +211,18 @@
5. 监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。 5. 监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。
```js ```js
interface ChangeCallback { function changeCallback(sessionId, changeData) {
sessionId: string, console.info(`change: ${sessionId}`);
fields: Array<string>
}
localObject.on("change", (changeData:ChangeCallback) => { if (changeData !== null && changeData !== undefined) {
console.info("change" + changeData.sessionId); changeData.forEach(element => {
if (changeData.fields != null && changeData.fields != undefined) { console.info(`The element ${localObject[element]} changed.`);
for (let index: number = 0; index < changeData.fields.length; index++) { });
console.info(`The element ${localObject[changeData.fields[index]]} changed.`);
}
} }
}); }
// 发起方要在changeCallback里刷新界面,则需要将正确的this绑定给changeCallback
localObject.on("change", this.changeCallback.bind(this));
``` ```
6. 修改对象属性,对象属性支持基本类型(数字类型、布尔类型、字符串类型)以及复杂类型(数组、基本类型嵌套等)。 6. 修改对象属性,对象属性支持基本类型(数字类型、布尔类型、字符串类型)以及复杂类型(数组、基本类型嵌套等)。
...@@ -275,14 +257,7 @@ ...@@ -275,14 +257,7 @@
```js ```js
// 删除变更回调changeCallback // 删除变更回调changeCallback
localObject.off('change',(changeData: ChangeCallback) => { localObject.off('change', this.changeCallback);
console.info("change" + changeData.sessionId);
if (changeData.fields != null && changeData.fields != undefined) {
for (let index: number = 0; index < changeData.fields.length; index++) {
console.info("changed !" + changeData.fields[index] + " " + g_object[changeData.fields[index]]);
}
}
});
// 删除所有的变更回调 // 删除所有的变更回调
localObject.off('change'); localObject.off('change');
``` ```
...@@ -290,32 +265,27 @@ ...@@ -290,32 +265,27 @@
9. 监听分布式数据对象的上下线。可以监听对端分布式数据对象的上下线。 9. 监听分布式数据对象的上下线。可以监听对端分布式数据对象的上下线。
```js ```js
interface onStatusCallback { function statusCallback(sessionId, networkId, status) {
sessionId: string, // 业务处理
networkId: string,
status: 'online' | 'offline'
} }
localObject.on('status', (statusCallback: onStatusCallback) => { localObject.on('status', this.statusCallback);
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.networkId);
// 业务处理
});
``` ```
10. 保存和撤回已保存的数据对象。 10. 保存和撤回已保存的数据对象。
```js ```js
// 保存数据对象,如果应用退出后组网内设备需要恢复对象数据时调用 // 保存数据对象,如果应用退出后组网内设备需要恢复对象数据时调用
localObject.save("local").then((result: distributedDataObject.SaveSuccessResponse) => { localObject.save('local').then((result) => {
console.info(`Succeeded in saving. SessionId:${result.sessionId},version:${result.version},deviceId:${result.deviceId}`); console.info(`Succeeded in saving. SessionId:${result.sessionId},version:${result.version},deviceId:${result.deviceId}`);
}).catch((err: BusinessError) => { }).catch((err) => {
console.error(`Failed to save. Code:${err.code},message:${err.message}`); console.error(`Failed to save. Code:${err.code},message:${err.message}`);
}); });
// 撤回保存的数据对象 // 撤回保存的数据对象
localObject.revokeSave().then((result: distributedDataObject.RevokeSaveSuccessResponse) => { localObject.revokeSave().then((result) => {
console.info(`Succeeded in revokeSaving. Session:${result.sessionId}`); console.info(`Succeeded in revokeSaving. Session:${result.sessionId}`);
}).catch((err: BusinessError) => { }).catch((err) => {
console.error(`Failed to revokeSave. Code:${err.code},message:${err.message}`); console.error(`Failed to revokeSave. Code:${err.code},message:${err.message}`);
}); });
``` ```
...@@ -323,16 +293,8 @@ ...@@ -323,16 +293,8 @@
11. 删除监听分布式数据对象的上下线。可以指定删除监听的上下线回调;也可以不指定,这将会删除该分布式数据对象的所有上下线回调。 11. 删除监听分布式数据对象的上下线。可以指定删除监听的上下线回调;也可以不指定,这将会删除该分布式数据对象的所有上下线回调。
```js ```js
interface offStatusCallback {
sessionId: string,
deviceId: string,
status: 'online' | 'offline'
}
// 删除上下线回调statusCallback // 删除上下线回调statusCallback
localObject.off('status', (statusCallback: offStatusCallback) => { localObject.off('status', this.statusCallback);
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.deviceId);
// 业务处理
});
// 删除所有的上下线回调 // 删除所有的上下线回调
localObject.off('status'); localObject.off('status');
``` ```
...@@ -341,7 +303,7 @@ ...@@ -341,7 +303,7 @@
```js ```js
localObject.setSessionId(() => { localObject.setSessionId(() => {
console.info('leave all session.'); console.info('leave all session.');
}); });
``` ```
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
> **说明:** > **说明:**
> >
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口仅支持在JS文件中使用。
## 导入模块 ## 导入模块
...@@ -42,20 +43,10 @@ FA模型示例: ...@@ -42,20 +43,10 @@ FA模型示例:
// 导入模块 // 导入模块
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
import { BusinessError } from '@ohos.base';
// 获取context // 获取context
let context = featureAbility.getContext(); let context = featureAbility.getContext();
interface sourceObject{ // 创建对象,该对象包含4个属性类型:string、number、boolean和Object
name: string, let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
age: number,
isVis: boolean
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
}
let g_object: distributedObject.DataObject = distributedObject.create(context, source);
``` ```
Stage模型示例: Stage模型示例:
...@@ -64,23 +55,13 @@ Stage模型示例: ...@@ -64,23 +55,13 @@ Stage模型示例:
// 导入模块 // 导入模块
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import { BusinessError } from '@ohos.base';
import window from '@ohos.window'; let g_object;
let g_object: distributedObject.DataObject = null;
interface sourceObject{
name: string,
age: number,
isVis: boolean
}
class EntryAbility extends UIAbility { class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage) { onWindowStageCreate(windowStage){
let source: sourceObject = { // 创建对象,该对象包含4个属性类型:string、number、boolean和Object
name: "amy", g_object = distributedObject.create(this.context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
age:18,
isVis:false
}
g_object = distributedObject.create(this.context, source);
} }
} }
``` ```
...@@ -103,7 +84,7 @@ genSessionId(): string ...@@ -103,7 +84,7 @@ genSessionId(): string
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
let sessionId: string = distributedObject.genSessionId(); let sessionId = distributedObject.genSessionId();
``` ```
## SaveSuccessResponse<sup>9+</sup> ## SaveSuccessResponse<sup>9+</sup>
...@@ -239,13 +220,13 @@ setSessionId(sessionId?: string): Promise&lt;void&gt; ...@@ -239,13 +220,13 @@ setSessionId(sessionId?: string): Promise&lt;void&gt;
// g_object加入分布式组网 // g_object加入分布式组网
g_object.setSessionId(distributedObject.genSessionId()).then (()=>{ g_object.setSessionId(distributedObject.genSessionId()).then (()=>{
console.info("join session."); console.info("join session.");
}).catch((error: BusinessError)=>{ }).catch((error)=>{
console.info("error:" + error.code + error.message); console.info("error:" + error.code + error.message);
}); });
// 退出分布式组网 // 退出分布式组网
g_object.setSessionId().then (()=>{ g_object.setSessionId().then (()=>{
console.info("leave all session."); console.info("leave all session.");
}).catch((error: BusinessError)=>{ }).catch((error)=>{
console.info("error:" + error.code + error.message); console.info("error:" + error.code + error.message);
}); });
``` ```
...@@ -268,18 +249,15 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri ...@@ -268,18 +249,15 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri
**示例:** **示例:**
```js ```js
interface ChangeCallback { globalThis.changeCallback = (sessionId, changeData) => {
sessionId: string, console.info("change" + sessionId);
fields: Array<string> if (changeData != null && changeData != undefined) {
} changeData.forEach(element => {
g_object.on("change", (changeData: ChangeCallback) => { console.info("changed !" + element + " " + g_object[element]);
console.info("change" + changeData.sessionId); });
if (changeData.fields != null && changeData.fields != undefined) {
for (let index: number = 0; index < changeData.fields.length; index++) {
console.info("changed !" + changeData.fields[index] + " " + g_object[changeData.fields[index]]);
}
} }
}); }
g_object.on("change", globalThis.changeCallback);
``` ```
### off('change')<sup>9+</sup> ### off('change')<sup>9+</sup>
...@@ -302,14 +280,7 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st ...@@ -302,14 +280,7 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st
```js ```js
// 删除数据变更回调changeCallback // 删除数据变更回调changeCallback
g_object.off("change", (changeData:ChangeCallback) => { g_object.off("change", globalThis.changeCallback);
console.info("change" + changeData.sessionId);
if (changeData.fields != null && changeData.fields != undefined) {
for (let index: number = 0; index < changeData.fields.length; index++) {
console.info("changed !" + changeData.fields[index] + " " + g_object[changeData.fields[index]]);
}
}
});
// 删除所有的数据变更回调 // 删除所有的数据变更回调
g_object.off("change"); g_object.off("change");
``` ```
...@@ -332,15 +303,10 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st ...@@ -332,15 +303,10 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st
**示例:** **示例:**
```js ```js
interface onStatusCallback { globalThis.statusCallback = (sessionId, networkId, status) => {
sessionId: string, globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
networkId: string,
status: 'online' | 'offline'
} }
g_object.on("status", globalThis.statusCallback);
g_object.on("status", (statusCallback:onStatusCallback) => {
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.networkId);
});
``` ```
### off('status')<sup>9+</sup> ### off('status')<sup>9+</sup>
...@@ -362,15 +328,11 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s ...@@ -362,15 +328,11 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s
**示例:** **示例:**
```js ```js
interface offStatusCallback { globalThis.statusCallback = (sessionId, networkId, status) => {
sessionId: string, globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
networkId: string,
status: 'online' | 'offline'
} }
// 删除上下线回调changeCallback // 删除上下线回调changeCallback
g_object.off("status", (statusCallback:StatusCallback) => { g_object.off("status",globalThis.statusCallback);
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.networkId);
});
// 删除所有的上下线回调 // 删除所有的上下线回调
g_object.off("status"); g_object.off("status");
``` ```
...@@ -402,7 +364,7 @@ save(deviceId: string, callback: AsyncCallback&lt;SaveSuccessResponse&gt;): void ...@@ -402,7 +364,7 @@ save(deviceId: string, callback: AsyncCallback&lt;SaveSuccessResponse&gt;): void
```ts ```ts
g_object.setSessionId("123456"); g_object.setSessionId("123456");
g_object.save("local", (err: BusinessError, result:distributedObject.SaveSuccessResponse) => { g_object.save("local", (err, result) => {
if (err) { if (err) {
console.info("save failed, error code = " + err.code); console.info("save failed, error code = " + err.code);
console.info("save failed, error message: " + err.message); console.info("save failed, error message: " + err.message);
...@@ -447,12 +409,12 @@ save(deviceId: string): Promise&lt;SaveSuccessResponse&gt; ...@@ -447,12 +409,12 @@ save(deviceId: string): Promise&lt;SaveSuccessResponse&gt;
```js ```js
g_object.setSessionId("123456"); g_object.setSessionId("123456");
g_object.save("local").then((result: distributedObject.SaveSuccessResponse) => { g_object.save("local").then((result) => {
console.info("save callback"); console.info("save callback");
console.info("save sessionId " + result.sessionId); console.info("save sessionId " + result.sessionId);
console.info("save version " + result.version); console.info("save version " + result.version);
console.info("save deviceId " + result.deviceId); console.info("save deviceId " + result.deviceId);
}).catch((err: BusinessError) => { }).catch((err) => {
console.info("save failed, error code = " + err.code); console.info("save failed, error code = " + err.code);
console.info("save failed, error message: " + err.message); console.info("save failed, error message: " + err.message);
}); });
...@@ -480,7 +442,7 @@ revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void ...@@ -480,7 +442,7 @@ revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void
```js ```js
g_object.setSessionId("123456"); g_object.setSessionId("123456");
// 持久化数据 // 持久化数据
g_object.save("local", (err: BusinessError, result: distributedObject.SaveSuccessResponse) => { g_object.save("local", (err, result) => {
if (err) { if (err) {
console.info("save failed, error code = " + err.code); console.info("save failed, error code = " + err.code);
console.info("save failed, error message: " + err.message); console.info("save failed, error message: " + err.message);
...@@ -492,7 +454,7 @@ g_object.save("local", (err: BusinessError, result: distributedObject.SaveSucces ...@@ -492,7 +454,7 @@ g_object.save("local", (err: BusinessError, result: distributedObject.SaveSucces
console.info("save deviceId: " + result.deviceId); console.info("save deviceId: " + result.deviceId);
}); });
// 删除持久化保存的数据 // 删除持久化保存的数据
g_object.revokeSave((err: BusinessError, result: distributedObject.RevokeSaveSuccessResponse) => { g_object.revokeSave((err, result) => {
if (err) { if (err) {
console.info("revokeSave failed, error code = " + err.code); console.info("revokeSave failed, error code = " + err.code);
console.info("revokeSave failed, error message: " + err.message); console.info("revokeSave failed, error message: " + err.message);
...@@ -525,20 +487,20 @@ revokeSave(): Promise&lt;RevokeSaveSuccessResponse&gt; ...@@ -525,20 +487,20 @@ revokeSave(): Promise&lt;RevokeSaveSuccessResponse&gt;
```ts ```ts
g_object.setSessionId("123456"); g_object.setSessionId("123456");
// 持久化数据 // 持久化数据
g_object.save("local").then((result: distributedObject.SaveSuccessResponse) => { g_object.save("local").then((result) => {
console.info("save callback"); console.info("save callback");
console.info("save sessionId " + result.sessionId); console.info("save sessionId " + result.sessionId);
console.info("save version " + result.version); console.info("save version " + result.version);
console.info("save deviceId " + result.deviceId); console.info("save deviceId " + result.deviceId);
}).catch((err: BusinessError) => { }).catch((err) => {
console.info("save failed, error code = " + err.code); console.info("save failed, error code = " + err.code);
console.info("save failed, error message: " + err.message); console.info("save failed, error message: " + err.message);
}); });
// 删除持久化保存的数据 // 删除持久化保存的数据
g_object.revokeSave().then((result: distributedObject.RevokeSaveSuccessResponse) => { g_object.revokeSave().then((result) => {
console.info("revokeSave callback"); console.info("revokeSave callback");
console.info("sessionId" + result.sessionId); console.info("sessionId" + result.sessionId);
}).catch((err: BusinessError)=> { }).catch((err)=> {
console.info("revokeSave failed, error code = " + err.code); console.info("revokeSave failed, error code = " + err.code);
console.info("revokeSave failed, error message = " + err.message); console.info("revokeSave failed, error message = " + err.message);
}); });
...@@ -573,17 +535,8 @@ createDistributedObject(source: object): DistributedObject ...@@ -573,17 +535,8 @@ createDistributedObject(source: object): DistributedObject
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
interface sourceObject{ // 创建对象,对象包含4个属性类型,string,number,boolean和Object
name: string, let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
age: number,
isVis: boolean
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
}
let g_object: distributedObject.DistributedObject = distributedObject.createDistributedObject(source);
``` ```
## DistributedObject<sup>(deprecated)</sup> ## DistributedObject<sup>(deprecated)</sup>
...@@ -620,17 +573,7 @@ setSessionId(sessionId?: string): boolean ...@@ -620,17 +573,7 @@ setSessionId(sessionId?: string): boolean
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
interface sourceObject{ let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});;
name: string,
age: number,
isVis: boolean
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
}
let g_object: distributedObject.DistributedObject = distributedObject.createDistributedObject(source);
// g_object加入分布式组网 // g_object加入分布式组网
g_object.setSessionId(distributedObject.genSessionId()); g_object.setSessionId(distributedObject.genSessionId());
// 设置为""退出分布式组网 // 设置为""退出分布式组网
...@@ -660,29 +603,16 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri ...@@ -660,29 +603,16 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
interface sourceObject{ let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
name: string, globalThis.changeCallback = (sessionId, changeData) => {
age: number, console.info("change" + sessionId);
isVis: boolean if (changeData != null && changeData != undefined) {
} changeData.forEach(element => {
interface ChangeCallback { console.info("changed !" + element + " " + g_object[element]);
sessionId: string, });
fields: Array<string>
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
}
let g_object: distributedObject.DistributedObject = distributedObject.createDistributedObject(source);
g_object.on("change", (changeData:ChangeCallback) => {
console.info("change" + changeData.sessionId);
if (changeData.fields != null && changeData.fields != undefined) {
for (let index: number = 0; index < changeData.fields.length; index++) {
console.info("changed !" + changeData.fields[index] + " " + g_object[changeData.fields[index]]);
}
} }
}); }
g_object.on("change", globalThis.changeCallback);
``` ```
### off('change')<sup>(deprecated)</sup> ### off('change')<sup>(deprecated)</sup>
...@@ -709,30 +639,9 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st ...@@ -709,30 +639,9 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
interface sourceObject{ let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
name: string,
age: number,
isVis: boolean
}
interface ChangeCallback {
sessionId: string,
fields: Array<string>
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
}
let g_object: distributedObject.DistributedObject = distributedObject.createDistributedObject(source);
// 删除数据变更回调changeCallback // 删除数据变更回调changeCallback
g_object.off("change", (changeData:ChangeCallback) => { g_object.off("change", globalThis.changeCallback);
console.info("change" + changeData.sessionId);
if (changeData.fields != null && changeData.fields != undefined) {
for (let index: number = 0; index < changeData.fields.length; index++) {
console.info("changed !" + changeData.fields[index] + " " + g_object[changeData.fields[index]]);
}
}
});
// 删除所有的数据变更回调 // 删除所有的数据变更回调
g_object.off("change"); g_object.off("change");
``` ```
...@@ -760,27 +669,11 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st ...@@ -760,27 +669,11 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
globalThis.statusCallback = (sessionId, networkId, status) => {
interface sourceObject{ globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
name: string,
age: number,
isVis: boolean
}
interface StatusCallback {
sessionId: string,
networkId: string,
status: 'online' | 'offline'
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
} }
let g_object: distributedObject.DistributedObject = distributedObject.createDistributedObject(source); let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
g_object.on("status", globalThis.statusCallback);
g_object.on("status", (statusCallback:StatusCallback) => {
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.networkId);
});
``` ```
### off('status')<sup>(deprecated)</sup> ### off('status')<sup>(deprecated)</sup>
...@@ -807,26 +700,12 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s ...@@ -807,26 +700,12 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
interface sourceObject{ let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
name: string, globalThis.statusCallback = (sessionId, networkId, status) => {
age: number, globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
isVis: boolean
} }
interface offStatusCallback {
sessionId: string,
deviceId: string,
status: 'online' | 'offline'
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
}
let g_object: distributedObject.DistributedObject = distributedObject.createDistributedObject(source);
// 删除上下线回调changeCallback // 删除上下线回调changeCallback
g_object.off("status", (statusCallback:offStatusCallback) => { g_object.off("status",globalThis.statusCallback);
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.deviceId);
});
// 删除所有的上下线回调 // 删除所有的上下线回调
g_object.off("status"); g_object.off("status");
``` ```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册