未验证 提交 6bfd3ff4 编写于 作者: O openharmony_ci 提交者: Gitee

!23106 monthly0815分支:同步22990和23009

Merge pull request !23106 from 葛亚芳/monthly_20230815
...@@ -58,11 +58,13 @@ ...@@ -58,11 +58,13 @@
```js ```js
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import { BusinessError } from '@ohos.base';
import window from '@ohos.window';
class EntryAbility extends UIAbility { class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage) { onWindowStageCreate(windowStage: window.WindowStage) {
try { try {
dataPreferences.getPreferences(this.context, 'mystore', (err, preferences) => { dataPreferences.getPreferences(this.context, 'myStore', (err: BusinessError, preferences: dataPreferences.Preferences) => {
if (err) { if (err) {
console.error(`Failed to get preferences. Code:${err.code},message:${err.message}`); console.error(`Failed to get preferences. Code:${err.code},message:${err.message}`);
return; return;
...@@ -82,12 +84,13 @@ ...@@ -82,12 +84,13 @@
```js ```js
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();
try { try {
dataPreferences.getPreferences(context, 'mystore', (err, preferences) => { dataPreferences.getPreferences(this.context, 'myStore', (err: BusinessError, preferences: dataPreferences.Preferences) => {
if (err) { if (err) {
console.error(`Failed to get preferences. Code:${err.code},message:${err.message}`); console.error(`Failed to get preferences. Code:${err.code},message:${err.message}`);
return; return;
...@@ -157,7 +160,7 @@ ...@@ -157,7 +160,7 @@
```js ```js
try { try {
preferences.flush((err) => { preferences.flush((err: BusinessError) => {
if (err) { if (err) {
console.error(`Failed to flush. Code:${err.code}, message:${err.message}`); console.error(`Failed to flush. Code:${err.code}, message:${err.message}`);
return; return;
...@@ -174,18 +177,20 @@ ...@@ -174,18 +177,20 @@
应用订阅数据变更需要指定observer作为回调方法。订阅的Key值发生变更后,当执行flush()方法时,observer被触发回调。示例代码如下所示: 应用订阅数据变更需要指定observer作为回调方法。订阅的Key值发生变更后,当执行flush()方法时,observer被触发回调。示例代码如下所示:
```js ```js
let observer = function (key) { interface observer {
console.info('The key' + key + 'changed.'); key: string
} }
preferences.on('change', observer); preferences.on('change', (key: observer) => {
console.info('The key' + key + 'changed.');
});
// 数据产生变更,由'auto'变为'manual' // 数据产生变更,由'auto'变为'manual'
preferences.put('startup', 'manual', (err) => { preferences.put('startup', 'manual', (err: BusinessError) => {
if (err) { if (err) {
console.error(`Failed to put the value of 'startup'. Code:${err.code},message:${err.message}`); console.error(`Failed to put the value of 'startup'. Code:${err.code},message:${err.message}`);
return; return;
} }
console.info("Succeeded in putting the value of 'startup'."); console.info("Succeeded in putting the value of 'startup'.");
preferences.flush((err) => { preferences.flush((err: BusinessError) => {
if (err) { if (err) {
console.error(`Failed to flush. Code:${err.code}, message:${err.message}`); console.error(`Failed to flush. Code:${err.code}, message:${err.message}`);
return; return;
...@@ -210,7 +215,7 @@ ...@@ -210,7 +215,7 @@
```js ```js
try { try {
dataPreferences.deletePreferences(this.context, 'mystore', (err, val) => { dataPreferences.deletePreferences(this.context, 'myStore', (err: BusinessError) => {
if (err) { if (err) {
console.error(`Failed to delete preferences. Code:${err.code}, message:${err.message}`); console.error(`Failed to delete preferences. Code:${err.code}, message:${err.message}`);
return; return;
......
...@@ -151,17 +151,26 @@ ...@@ -151,17 +151,26 @@
// 导入模块 // 导入模块
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) { onWindowStageCreate(windowStage: window.WindowStage) {
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object let source: sourceObject = {
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);
} }
} }
``` ```
...@@ -175,34 +184,43 @@ ...@@ -175,34 +184,43 @@
import featureAbility from '@ohos.ability.featureAbility'; import featureAbility from '@ohos.ability.featureAbility';
// 获取context // 获取context
let context = featureAbility.getContext(); let context = featureAbility.getContext();
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object interface sourceObject{
let localObject = distributedDataObject.create(context, { name: string,
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 = '123456'; let sessionId: string = '123456';
localObject.setSessionId(sessionId); localObject.setSessionId(sessionId);
// 和设备1协同的设备2加入同一个session // 和设备1协同的设备2加入同一个session
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object // 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let remoteObject = distributedDataObject.create(this.context, { let remoteSource: sourceObject = {
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);
``` ```
...@@ -210,18 +228,19 @@ ...@@ -210,18 +228,19 @@
5. 监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。 5. 监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。
```js ```js
function changeCallback(sessionId, changeData) { interface ChangeCallback {
console.info(`change: ${sessionId}`); sessionId: string,
fields: Array<string>
}
if (changeData !== null && changeData !== undefined) { localObject.on("change", (changeData:ChangeCallback) => {
changeData.forEach(element => { console.info("change" + changeData.sessionId);
console.info(`The element ${localObject[element]} changed.`); if (changeData.fields != null && changeData.fields != undefined) {
}); 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. 修改对象属性,对象属性支持基本类型(数字类型、布尔类型、字符串类型)以及复杂类型(数组、基本类型嵌套等)。
...@@ -256,7 +275,14 @@ ...@@ -256,7 +275,14 @@
```js ```js
// 删除变更回调changeCallback // 删除变更回调changeCallback
localObject.off('change', this.changeCallback); localObject.off('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]]);
}
}
});
// 删除所有的变更回调 // 删除所有的变更回调
localObject.off('change'); localObject.off('change');
``` ```
...@@ -264,27 +290,32 @@ ...@@ -264,27 +290,32 @@
9. 监听分布式数据对象的上下线。可以监听对端分布式数据对象的上下线。 9. 监听分布式数据对象的上下线。可以监听对端分布式数据对象的上下线。
```js ```js
function statusCallback(sessionId, networkId, status) { interface onStatusCallback {
// 业务处理 sessionId: string,
networkId: string,
status: 'online' | 'offline'
} }
localObject.on('status', this.statusCallback); localObject.on('status', (statusCallback: onStatusCallback) => {
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.networkId);
// 业务处理
});
``` ```
10. 保存和撤回已保存的数据对象。 10. 保存和撤回已保存的数据对象。
```js ```js
// 保存数据对象,如果应用退出后组网内设备需要恢复对象数据时调用 // 保存数据对象,如果应用退出后组网内设备需要恢复对象数据时调用
localObject.save('local').then((result) => { localObject.save("local").then((result: distributedDataObject.SaveSuccessResponse) => {
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) => { }).catch((err: BusinessError) => {
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) => { localObject.revokeSave().then((result: distributedDataObject.RevokeSaveSuccessResponse) => {
console.info(`Succeeded in revokeSaving. Session:${result.sessionId}`); console.info(`Succeeded in revokeSaving. Session:${result.sessionId}`);
}).catch((err) => { }).catch((err: BusinessError) => {
console.error(`Failed to revokeSave. Code:${err.code},message:${err.message}`); console.error(`Failed to revokeSave. Code:${err.code},message:${err.message}`);
}); });
``` ```
...@@ -292,8 +323,16 @@ ...@@ -292,8 +323,16 @@
11. 删除监听分布式数据对象的上下线。可以指定删除监听的上下线回调;也可以不指定,这将会删除该分布式数据对象的所有上下线回调。 11. 删除监听分布式数据对象的上下线。可以指定删除监听的上下线回调;也可以不指定,这将会删除该分布式数据对象的所有上下线回调。
```js ```js
interface offStatusCallback {
sessionId: string,
deviceId: string,
status: 'online' | 'offline'
}
// 删除上下线回调statusCallback // 删除上下线回调statusCallback
localObject.off('status', this.statusCallback); localObject.off('status', (statusCallback: offStatusCallback) => {
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.deviceId);
// 业务处理
});
// 删除所有的上下线回调 // 删除所有的上下线回调
localObject.off('status'); localObject.off('status');
``` ```
...@@ -302,7 +341,7 @@ ...@@ -302,7 +341,7 @@
```js ```js
localObject.setSessionId(() => { localObject.setSessionId(() => {
console.info('leave all lession.'); console.info('leave all session.');
}); });
``` ```
......
...@@ -42,10 +42,20 @@ FA模型示例: ...@@ -42,10 +42,20 @@ 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();
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object interface sourceObject{
let g_object = distributedObject.create(context, {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.DataObject = distributedObject.create(context, source);
``` ```
Stage模型示例: Stage模型示例:
...@@ -54,13 +64,23 @@ Stage模型示例: ...@@ -54,13 +64,23 @@ 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';
let g_object = null; import window from '@ohos.window';
let g_object: distributedObject.DataObject = null;
interface sourceObject{
name: string,
age: number,
isVis: boolean
}
class EntryAbility extends UIAbility { class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage){ onWindowStageCreate(windowStage: window.WindowStage) {
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object let source: sourceObject = {
g_object = distributedObject.create(this.context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); name: "amy",
age:18,
isVis:false
}
g_object = distributedObject.create(this.context, source);
} }
} }
``` ```
...@@ -83,7 +103,7 @@ genSessionId(): string ...@@ -83,7 +103,7 @@ genSessionId(): string
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
let sessionId = distributedObject.genSessionId(); let sessionId: string = distributedObject.genSessionId();
``` ```
## SaveSuccessResponse<sup>9+</sup> ## SaveSuccessResponse<sup>9+</sup>
...@@ -179,7 +199,7 @@ g_object.setSessionId(distributedObject.genSessionId(), ()=>{ ...@@ -179,7 +199,7 @@ g_object.setSessionId(distributedObject.genSessionId(), ()=>{
}); });
// 退出分布式组网 // 退出分布式组网
g_object.setSessionId(() => { g_object.setSessionId(() => {
console.info("leave all lession."); console.info("leave all session.");
}); });
``` ```
...@@ -219,13 +239,13 @@ setSessionId(sessionId?: string): Promise&lt;void&gt; ...@@ -219,13 +239,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)=>{ }).catch((error: BusinessError)=>{
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 lession."); console.info("leave all session.");
}).catch((error)=>{ }).catch((error: BusinessError)=>{
console.info("error:" + error.code + error.message); console.info("error:" + error.code + error.message);
}); });
``` ```
...@@ -248,15 +268,18 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri ...@@ -248,15 +268,18 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri
**示例:** **示例:**
```js ```js
globalThis.changeCallback = (sessionId, changeData) => { interface ChangeCallback {
console.info("change" + sessionId); sessionId: string,
if (changeData != null && changeData != undefined) { fields: Array<string>
changeData.forEach(element => {
console.info("changed !" + element + " " + g_object[element]);
});
}
} }
g_object.on("change", globalThis.changeCallback); 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]]);
}
}
});
``` ```
### off('change')<sup>9+</sup> ### off('change')<sup>9+</sup>
...@@ -279,7 +302,14 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st ...@@ -279,7 +302,14 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st
```js ```js
// 删除数据变更回调changeCallback // 删除数据变更回调changeCallback
g_object.off("change", globalThis.changeCallback); g_object.off("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.off("change"); g_object.off("change");
``` ```
...@@ -302,10 +332,15 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st ...@@ -302,10 +332,15 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st
**示例:** **示例:**
```js ```js
globalThis.statusCallback = (sessionId, networkId, status) => { interface onStatusCallback {
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId; sessionId: string,
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>
...@@ -327,11 +362,15 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s ...@@ -327,11 +362,15 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s
**示例:** **示例:**
```js ```js
globalThis.statusCallback = (sessionId, networkId, status) => { interface offStatusCallback {
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId; sessionId: string,
networkId: string,
status: 'online' | 'offline'
} }
// 删除上下线回调changeCallback // 删除上下线回调changeCallback
g_object.off("status",globalThis.statusCallback); g_object.off("status", (statusCallback:StatusCallback) => {
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.networkId);
});
// 删除所有的上下线回调 // 删除所有的上下线回调
g_object.off("status"); g_object.off("status");
``` ```
...@@ -363,7 +402,7 @@ save(deviceId: string, callback: AsyncCallback&lt;SaveSuccessResponse&gt;): void ...@@ -363,7 +402,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, result) => { g_object.save("local", (err: BusinessError, result:distributedObject.SaveSuccessResponse) => {
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);
...@@ -408,12 +447,12 @@ save(deviceId: string): Promise&lt;SaveSuccessResponse&gt; ...@@ -408,12 +447,12 @@ save(deviceId: string): Promise&lt;SaveSuccessResponse&gt;
```js ```js
g_object.setSessionId("123456"); g_object.setSessionId("123456");
g_object.save("local").then((result) => { g_object.save("local").then((result: distributedObject.SaveSuccessResponse) => {
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) => { }).catch((err: BusinessError) => {
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);
}); });
...@@ -441,7 +480,7 @@ revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void ...@@ -441,7 +480,7 @@ revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void
```js ```js
g_object.setSessionId("123456"); g_object.setSessionId("123456");
// 持久化数据 // 持久化数据
g_object.save("local", (err, result) => { g_object.save("local", (err: BusinessError, result: distributedObject.SaveSuccessResponse) => {
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);
...@@ -453,7 +492,7 @@ g_object.save("local", (err, result) => { ...@@ -453,7 +492,7 @@ g_object.save("local", (err, result) => {
console.info("save deviceId: " + result.deviceId); console.info("save deviceId: " + result.deviceId);
}); });
// 删除持久化保存的数据 // 删除持久化保存的数据
g_object.revokeSave((err, result) => { g_object.revokeSave((err: BusinessError, result: distributedObject.RevokeSaveSuccessResponse) => {
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);
...@@ -486,20 +525,20 @@ revokeSave(): Promise&lt;RevokeSaveSuccessResponse&gt; ...@@ -486,20 +525,20 @@ revokeSave(): Promise&lt;RevokeSaveSuccessResponse&gt;
```ts ```ts
g_object.setSessionId("123456"); g_object.setSessionId("123456");
// 持久化数据 // 持久化数据
g_object.save("local").then((result) => { g_object.save("local").then((result: distributedObject.SaveSuccessResponse) => {
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) => { }).catch((err: BusinessError) => {
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) => { g_object.revokeSave().then((result: distributedObject.RevokeSaveSuccessResponse) => {
console.info("revokeSave callback"); console.info("revokeSave callback");
console.info("sessionId" + result.sessionId); console.info("sessionId" + result.sessionId);
}).catch((err)=> { }).catch((err: BusinessError)=> {
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);
}); });
...@@ -534,8 +573,17 @@ createDistributedObject(source: object): DistributedObject ...@@ -534,8 +573,17 @@ createDistributedObject(source: object): DistributedObject
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
// 创建对象,对象包含4个属性类型,string,number,boolean和Object 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);
``` ```
## DistributedObject<sup>(deprecated)</sup> ## DistributedObject<sup>(deprecated)</sup>
...@@ -572,7 +620,17 @@ setSessionId(sessionId?: string): boolean ...@@ -572,7 +620,17 @@ setSessionId(sessionId?: string): boolean
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});; interface sourceObject{
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());
// 设置为""退出分布式组网 // 设置为""退出分布式组网
...@@ -602,16 +660,29 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri ...@@ -602,16 +660,29 @@ 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';
let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); interface sourceObject{
globalThis.changeCallback = (sessionId, changeData) => { name: string,
console.info("change" + sessionId); age: number,
if (changeData != null && changeData != undefined) { isVis: boolean
changeData.forEach(element => { }
console.info("changed !" + element + " " + g_object[element]); interface ChangeCallback {
}); sessionId: string,
} fields: Array<string>
}
let source: sourceObject = {
name: "amy",
age:18,
isVis:false
} }
g_object.on("change", globalThis.changeCallback); 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]]);
}
}
});
``` ```
### off('change')<sup>(deprecated)</sup> ### off('change')<sup>(deprecated)</sup>
...@@ -638,9 +709,30 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st ...@@ -638,9 +709,30 @@ 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';
let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); interface sourceObject{
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", globalThis.changeCallback); g_object.off("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.off("change"); g_object.off("change");
``` ```
...@@ -668,11 +760,27 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st ...@@ -668,11 +760,27 @@ 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) => {
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId; interface sourceObject{
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.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); let g_object: distributedObject.DistributedObject = distributedObject.createDistributedObject(source);
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>
...@@ -699,12 +807,26 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s ...@@ -699,12 +807,26 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s
```js ```js
import distributedObject from '@ohos.data.distributedDataObject'; import distributedObject from '@ohos.data.distributedDataObject';
let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}}); interface sourceObject{
globalThis.statusCallback = (sessionId, networkId, status) => { name: string,
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId; age: number,
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",globalThis.statusCallback); g_object.off("status", (statusCallback:offStatusCallback) => {
console.info("status changed " + statusCallback.sessionId + " " + statusCallback.status + " " + statusCallback.deviceId);
});
// 删除所有的上下线回调 // 删除所有的上下线回调
g_object.off("status"); g_object.off("status");
``` ```
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
```js ```js
import data_rdb from '@ohos.data.rdb'; import data_rdb from '@ohos.data.rdb';
import { BusinessError } from "@ohos.base"
import window from '@ohos.window';
``` ```
## data_rdb.getRdbStore ## data_rdb.getRdbStore
...@@ -43,11 +45,11 @@ FA模型示例: ...@@ -43,11 +45,11 @@ FA模型示例:
```js ```js
// 获取context // 获取context
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
let context = featureAbility.getContext() let context: Context;
// 获取context后调用getRdbStore // 获取context后调用getRdbStore
const STORE_CONFIG = { name: "RdbTest.db"} const STORE_CONFIG = { name: "RdbTest.db"}
data_rdb.getRdbStore(context, STORE_CONFIG, 1, function (err, rdbStore) { data_rdb.getRdbStore(context, STORE_CONFIG, 1, (err, rdbStore) => {
if (err) { if (err) {
console.info("Get RdbStore failed, err: " + err) console.info("Get RdbStore failed, err: " + err)
return return
...@@ -62,22 +64,23 @@ Stage模型示例: ...@@ -62,22 +64,23 @@ Stage模型示例:
// 获取context // 获取context
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
let context; let context: Context;
class EntryAbility extends UIAbility { interface storeConfig {
onWindowStageCreate(windowStage){ name: string
context = this.context
}
} }
// 获取context后调用getRdbStore class EntryAbility extends UIAbility {
const STORE_CONFIG = { name: "RdbTest.db"} onWindowStageCreate(windowStage: window.WindowStage){
data_rdb.getRdbStore(context, STORE_CONFIG, 1, function (err, rdbStore) { let STORE_CONFIG: storeConfig = { name: "RdbTest.db"};
data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, (err: BusinessError, rdbStore: data_rdb.RdbStore) => {
if (err) { if (err) {
console.info("Get RdbStore failed, err: " + err) console.info("Get RdbStore failed, err: " + err)
return return
} }
console.log("Get RdbStore successfully.") console.log("Get RdbStore successfully.")
}) })
}
}
``` ```
## data_rdb.getRdbStore ## data_rdb.getRdbStore
...@@ -109,7 +112,7 @@ FA模型示例: ...@@ -109,7 +112,7 @@ FA模型示例:
```js ```js
// 获取context // 获取context
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
let context = featureAbility.getContext() let context: Context;
// 获取context后调用getRdbStore // 获取context后调用getRdbStore
const STORE_CONFIG = { name: "RdbTest.db" } const STORE_CONFIG = { name: "RdbTest.db" }
...@@ -127,19 +130,22 @@ Stage模型示例: ...@@ -127,19 +130,22 @@ Stage模型示例:
// 获取context // 获取context
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
let context; let context: Context;
interface storeConfig {
name: string
}
class EntryAbility extends UIAbility { class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage){ onWindowStageCreate(windowStage: window.WindowStage){
context = this.context context = this.context
} }
} }
// 获取context后调用getRdbStore // 获取context后调用getRdbStore
const STORE_CONFIG = { name: "RdbTest.db" } let STORE_CONFIG: storeConfig = { name: "RdbTest.db"};
let promise = data_rdb.getRdbStore(context, STORE_CONFIG, 1); let promise = data_rdb.getRdbStore(context, STORE_CONFIG, 1);
promise.then(async (rdbStore) => { promise.then(async (rdbStore: data_rdb.RdbStore) => {
console.log("Get RdbStore successfully.") console.log("Get RdbStore successfully.")
}).catch((err) => { }).catch((err: BusinessError) => {
console.log("Get RdbStore failed, err: " + err) console.log("Get RdbStore failed, err: " + err)
}) })
``` ```
...@@ -167,10 +173,10 @@ FA模型示例: ...@@ -167,10 +173,10 @@ FA模型示例:
```js ```js
// 获取context // 获取context
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
let context = featureAbility.getContext() let context: Context;
// 获取context后调用deleteRdbStore // 获取context后调用deleteRdbStore
data_rdb.deleteRdbStore(context, "RdbTest.db", function (err) { data_rdb.deleteRdbStore(context, "RdbTest.db", (err) => {
if (err) { if (err) {
console.info("Delete RdbStore failed, err: " + err) console.info("Delete RdbStore failed, err: " + err)
return return
...@@ -185,15 +191,15 @@ Stage模型示例: ...@@ -185,15 +191,15 @@ Stage模型示例:
// 获取context // 获取context
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
let context; let context: Context;
class EntryAbility extends UIAbility { class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage){ onWindowStageCreate(windowStage: window.WindowStage){
context = this.context context = this.context
} }
} }
// 获取context后调用deleteRdbStore // 获取context后调用deleteRdbStore
data_rdb.deleteRdbStore(context, "RdbTest.db", function (err) { data_rdb.deleteRdbStore(context, "RdbTest.db", (err) => {
if (err) { if (err) {
console.info("Delete RdbStore failed, err: " + err) console.info("Delete RdbStore failed, err: " + err)
return return
...@@ -230,7 +236,7 @@ FA模型示例: ...@@ -230,7 +236,7 @@ FA模型示例:
```js ```js
// 获取context // 获取context
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
let context = featureAbility.getContext() let context: Context;
// 获取context后调用deleteRdbStore // 获取context后调用deleteRdbStore
let promise = data_rdb.deleteRdbStore(context, "RdbTest.db") let promise = data_rdb.deleteRdbStore(context, "RdbTest.db")
...@@ -247,9 +253,9 @@ Stage模型示例: ...@@ -247,9 +253,9 @@ Stage模型示例:
// 获取context // 获取context
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
let context; let context: Context;
class EntryAbility extends UIAbility { class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage){ onWindowStageCreate(windowStage: window.WindowStage){
context = this.context context = this.context
} }
} }
...@@ -258,7 +264,7 @@ class EntryAbility extends UIAbility { ...@@ -258,7 +264,7 @@ class EntryAbility extends UIAbility {
let promise = data_rdb.deleteRdbStore(context, "RdbTest.db") let promise = data_rdb.deleteRdbStore(context, "RdbTest.db")
promise.then(()=>{ promise.then(()=>{
console.log("Delete RdbStore successfully.") console.log("Delete RdbStore successfully.")
}).catch((err) => { }).catch((err: BusinessError) => {
console.info("Delete RdbStore failed, err: " + err) console.info("Delete RdbStore failed, err: " + err)
}) })
``` ```
...@@ -371,8 +377,8 @@ inDevices(devices: Array&lt;string&gt;): RdbPredicates ...@@ -371,8 +377,8 @@ inDevices(devices: Array&lt;string&gt;): RdbPredicates
```js ```js
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
let dmInstance = null; let dmInstance: deviceManager.DeviceManager = null;
let deviceIds = []; let deviceIds: Array<string> = [];
deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => { deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
if (err) { if (err) {
...@@ -381,7 +387,7 @@ deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) ...@@ -381,7 +387,7 @@ deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager)
} }
dmInstance = manager; dmInstance = manager;
let devices = dmInstance.getTrustedDeviceListSync(); let devices = dmInstance.getTrustedDeviceListSync();
for (var i = 0; i < devices.length; i++) { for (let i = 0; i < devices.length; i++) {
deviceIds[i] = devices[i].deviceId; deviceIds[i] = devices[i].deviceId;
} }
}) })
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册