Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
279ce8b3
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
279ce8b3
编写于
9月 05, 2023
作者:
L
LiRui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify object arkts
Signed-off-by:
N
LiRui
<
lirui.WX1229126@huawei.com
>
上级
ecd3f7b9
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
377 addition
and
395 deletion
+377
-395
zh-cn/application-dev/database/data-persistence-by-preferences.md
...plication-dev/database/data-persistence-by-preferences.md
+30
-16
zh-cn/application-dev/database/data-sync-of-distributed-data-object.md
...tion-dev/database/data-sync-of-distributed-data-object.md
+32
-70
zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md
...tion-dev/reference/apis/js-apis-data-distributedobject.md
+59
-180
zh-cn/application-dev/reference/apis/js-apis-data-preferences.md
...pplication-dev/reference/apis/js-apis-data-preferences.md
+256
-129
未找到文件。
zh-cn/application-dev/database/data-persistence-by-preferences.md
浏览文件 @
279ce8b3
...
...
@@ -47,7 +47,7 @@
1.
导入
`@ohos.data.preferences`
模块。
```
j
s
```
t
s
import
dataPreferences
from
'
@ohos.data.preferences
'
;
```
...
...
@@ -56,7 +56,7 @@
Stage模型示例:
```
j
s
```
t
s
import
UIAbility
from
'
@ohos.app.ability.UIAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
import
window
from
'
@ohos.window
'
;
...
...
@@ -73,7 +73,9 @@
// 请确保获取到Preferences实例后,再进行相关数据操作
})
}
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 @@
FA模型示例:
```
j
s
```
t
s
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
...
...
@@ -99,7 +101,9 @@
// 请确保获取到Preferences实例后,再进行相关数据操作
})
}
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 @@
示例代码如下所示:
```
j
s
```
t
s
try
{
if
(
preferences
.
hasSync
(
'
startup
'
))
{
console
.
info
(
"
The key 'startup' is contained.
"
);
...
...
@@ -124,7 +128,9 @@
preferences
.
putSync
(
'
startup
'
,
'
auto
'
);
}
}
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 @@
使用getSync()方法获取数据,即指定键对应的值。如果值为null或者非默认值类型,则返回默认数据。示例代码如下所示:
```
j
s
```
t
s
try
{
let
val
=
preferences
.
getSync
(
'
startup
'
,
'
default
'
);
console
.
info
(
`Succeeded in getting value of 'startup'. val:
${
val
}
.`
);
}
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 @@
使用deleteSync()方法删除指定键值对,示例代码如下所示:
```
j
s
```
t
s
try
{
preferences
.
deleteSync
(
'
startup
'
);
}
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 @@
应用存入数据到Preferences实例后,可以使用flush()方法实现数据持久化。示例代码如下所示:
```
j
s
```
t
s
try
{
preferences
.
flush
((
err
:
BusinessError
)
=>
{
if
(
err
)
{
...
...
@@ -168,7 +178,9 @@
console
.
info
(
'
Succeeded in flushing.
'
);
})
}
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 @@
应用订阅数据变更需要指定observer作为回调方法。订阅的Key值发生变更后,当执行flush()方法时,observer被触发回调。示例代码如下所示:
```
j
s
```
t
s
interface
observer
{
key
:
string
}
...
...
@@ -213,7 +225,7 @@
示例代码如下所示:
```
j
s
```
t
s
try
{
dataPreferences
.
deletePreferences
(
this
.
context
,
'
myStore
'
,
(
err
:
BusinessError
)
=>
{
if
(
err
)
{
...
...
@@ -223,7 +235,9 @@
console
.
info
(
'
Succeeded in deleting preferences.
'
);
})
}
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
}
`
);
}
```
...
...
zh-cn/application-dev/database/data-sync-of-distributed-data-object.md
浏览文件 @
279ce8b3
...
...
@@ -115,6 +115,7 @@
## 接口说明
以下是分布式对象跨设备数据同步功能的相关接口,大部分为异步接口。异步接口均有callback和Promise两种返回形式,下表均以callback形式为例,更多接口及使用方式请见
[
分布式数据对象
](
../reference/apis/js-apis-data-distributedobject.md
)
。
本模块接口仅支持在JS文件中使用。
| 接口名称 | 描述 |
| -------- | -------- |
...
...
@@ -151,26 +152,17 @@
// 导入模块
import
distributedDataObject
from
'
@ohos.data.distributedDataObject
'
;
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
{
onWindowStageCreate
(
windowStage
:
window
.
WindowStage
)
{
let
source
:
sourceObject
=
{
onWindowStageCreate
(
windowStage
)
{
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let
localObject
=
distributedDataObject
.
create
(
this
.
context
,
{
name
:
'
jack
'
,
age
:
18
,
isVis
:
false
,
parent
:
{
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 @@
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
// 获取context
let
context
=
featureAbility
.
getContext
();
interface
sourceObject
{
name
:
string
,
age
:
number
,
isVis
:
boolean
parent
:
{
[
key
:
string
]:
string
},
list
:
{
[
key
:
string
]:
string
}[]
}
let
source
:
sourceObject
=
{
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let
localObject
=
distributedDataObject
.
create
(
context
,
{
name
:
'
jack
'
,
age
:
18
,
isVis
:
false
,
parent
:
{
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.
加入同步组网。同步组网中的数据对象分为发起方和被拉起方。
```
js
// 设备1加入sessionId
let
sessionId
:
string
=
'
123456
'
;
let
sessionId
=
'
123456
'
;
localObject
.
setSessionId
(
sessionId
);
// 和设备1协同的设备2加入同一个session
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let
remote
Source
:
sourceObject
=
{
let
remote
Object
=
distributedDataObject
.
create
(
this
.
context
,
{
name
:
undefined
,
age
:
undefined
,
// undefined表示数据来自对端
isVis
:
true
,
parent
:
undefined
,
list
:
undefined
}
let
remoteObject
:
distributedDataObject
.
DataObject
=
distributedDataObject
.
create
(
this
.
context
,
remoteSource
);
});
// 收到status上线后remoteObject同步数据,即name变成jack,age是18
remoteObject
.
setSessionId
(
sessionId
);
```
...
...
@@ -228,19 +211,18 @@
5.
监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。
```
js
interface
ChangeCallback
{
sessionId
:
string
,
fields
:
Array
<
string
>
}
function
changeCallback
(
sessionId
,
changeData
)
{
console
.
info
(
`change:
${
sessionId
}
`
);
localObject
.
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
(
`The element
${
localObject
[
changeData
.
fields
[
index
]]}
changed.`
);
}
if
(
changeData
!==
null
&&
changeData
!==
undefined
)
{
changeData
.
forEach
(
element
=>
{
console
.
info
(
`The element
${
localObject
[
element
]}
changed.`
);
});
}
});
}
// 发起方要在changeCallback里刷新界面,则需要将正确的this绑定给changeCallback
localObject
.
on
(
"
change
"
,
this
.
changeCallback
.
bind
(
this
));
```
6.
修改对象属性,对象属性支持基本类型(数字类型、布尔类型、字符串类型)以及复杂类型(数组、基本类型嵌套等)。
...
...
@@ -275,14 +257,7 @@
```
js
// 删除变更回调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
'
,
this
.
changeCallback
);
// 删除所有的变更回调
localObject
.
off
(
'
change
'
);
```
...
...
@@ -290,32 +265,27 @@
9.
监听分布式数据对象的上下线。可以监听对端分布式数据对象的上下线。
```
js
interface
onStatusCallback
{
sessionId
:
string
,
networkId
:
string
,
status
:
'
online
'
|
'
offline
'
function
statusCallback
(
sessionId
,
networkId
,
status
)
{
// 业务处理
}
localObject
.
on
(
'
status
'
,
(
statusCallback
:
onStatusCallback
)
=>
{
console
.
info
(
"
status changed
"
+
statusCallback
.
sessionId
+
"
"
+
statusCallback
.
status
+
"
"
+
statusCallback
.
networkId
);
// 业务处理
});
localObject
.
on
(
'
status
'
,
this
.
statusCallback
);
```
10.
保存和撤回已保存的数据对象。
```
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
}
`
);
}).
catch
((
err
:
BusinessError
)
=>
{
}).
catch
((
err
)
=>
{
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
}
`
);
}).
catch
((
err
:
BusinessError
)
=>
{
}).
catch
((
err
)
=>
{
console
.
error
(
`Failed to revokeSave. Code:
${
err
.
code
}
,message:
${
err
.
message
}
`
);
});
```
...
...
@@ -323,16 +293,8 @@
11.
删除监听分布式数据对象的上下线。可以指定删除监听的上下线回调;也可以不指定,这将会删除该分布式数据对象的所有上下线回调。
```
js
interface
offStatusCallback
{
sessionId
:
string
,
deviceId
:
string
,
status
:
'
online
'
|
'
offline
'
}
// 删除上下线回调statusCallback
localObject
.
off
(
'
status
'
,
(
statusCallback
:
offStatusCallback
)
=>
{
console
.
info
(
"
status changed
"
+
statusCallback
.
sessionId
+
"
"
+
statusCallback
.
status
+
"
"
+
statusCallback
.
deviceId
);
// 业务处理
});
localObject
.
off
(
'
status
'
,
this
.
statusCallback
);
// 删除所有的上下线回调
localObject
.
off
(
'
status
'
);
```
...
...
@@ -341,7 +303,7 @@
```
js
localObject
.
setSessionId
(()
=>
{
console
.
info
(
'
leave all session.
'
);
console
.
info
(
'
leave all session.
'
);
});
```
...
...
zh-cn/application-dev/reference/apis/js-apis-data-distributedobject.md
浏览文件 @
279ce8b3
...
...
@@ -5,6 +5,7 @@
> **说明:**
>
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口仅支持在JS文件中使用。
## 导入模块
...
...
@@ -42,20 +43,10 @@ FA模型示例:
// 导入模块
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
// 获取context
let
context
=
featureAbility
.
getContext
();
interface
sourceObject
{
name
:
string
,
age
:
number
,
isVis
:
boolean
}
let
source
:
sourceObject
=
{
name
:
"
amy
"
,
age
:
18
,
isVis
:
false
}
let
g_object
:
distributedObject
.
DataObject
=
distributedObject
.
create
(
context
,
source
);
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object
let
g_object
=
distributedObject
.
create
(
context
,
{
name
:
"
Amy
"
,
age
:
18
,
isVis
:
false
,
parent
:{
mother
:
"
jack mom
"
,
father
:
"
jack Dad
"
}});
```
Stage模型示例:
...
...
@@ -64,23 +55,13 @@ Stage模型示例:
// 导入模块
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
import
UIAbility
from
'
@ohos.app.ability.UIAbility
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
import
window
from
'
@ohos.window
'
;
let
g_object
:
distributedObject
.
DataObject
=
null
;
interface
sourceObject
{
name
:
string
,
age
:
number
,
isVis
:
boolean
}
let
g_object
;
class
EntryAbility
extends
UIAbility
{
onWindowStageCreate
(
windowStage
:
window
.
WindowStage
)
{
let
source
:
sourceObject
=
{
name
:
"
amy
"
,
age
:
18
,
isVis
:
false
}
g_object
=
distributedObject
.
create
(
this
.
context
,
source
);
onWindowStageCreate
(
windowStage
){
// 创建对象,该对象包含4个属性类型:string、number、boolean和Object
g_object
=
distributedObject
.
create
(
this
.
context
,
{
name
:
"
Amy
"
,
age
:
18
,
isVis
:
false
,
parent
:{
mother
:
"
jack mom
"
,
father
:
"
jack Dad
"
}});
}
}
```
...
...
@@ -103,7 +84,7 @@ genSessionId(): string
```
js
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
let
sessionId
:
string
=
distributedObject
.
genSessionId
();
let
sessionId
=
distributedObject
.
genSessionId
();
```
## SaveSuccessResponse<sup>9+</sup>
...
...
@@ -239,13 +220,13 @@ setSessionId(sessionId?: string): Promise<void>
// g_object加入分布式组网
g_object
.
setSessionId
(
distributedObject
.
genSessionId
()).
then
(()
=>
{
console
.
info
(
"
join session.
"
);
}).
catch
((
error
:
BusinessError
)
=>
{
}).
catch
((
error
)
=>
{
console
.
info
(
"
error:
"
+
error
.
code
+
error
.
message
);
});
// 退出分布式组网
g_object
.
setSessionId
().
then
(()
=>
{
console
.
info
(
"
leave all session.
"
);
}).
catch
((
error
:
BusinessError
)
=>
{
}).
catch
((
error
)
=>
{
console
.
info
(
"
error:
"
+
error
.
code
+
error
.
message
);
});
```
...
...
@@ -268,18 +249,15 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<stri
**示例:**
```
js
interface
ChangeCallback
{
sessionId
:
string
,
fields
:
Array
<
string
>
}
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
]]);
}
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')<sup>9+</sup>
...
...
@@ -302,14 +280,7 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array<st
```
js
// 删除数据变更回调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
"
,
globalThis
.
changeCallback
);
// 删除所有的数据变更回调
g_object
.
off
(
"
change
"
);
```
...
...
@@ -332,15 +303,10 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st
**示例:**
```
js
interface
onStatusCallback
{
sessionId
:
string
,
networkId
:
string
,
status
:
'
online
'
|
'
offline
'
globalThis
.
statusCallback
=
(
sessionId
,
networkId
,
status
)
=>
{
globalThis
.
response
+=
"
status changed
"
+
sessionId
+
"
"
+
status
+
"
"
+
networkId
;
}
g_object
.
on
(
"
status
"
,
(
statusCallback
:
onStatusCallback
)
=>
{
console
.
info
(
"
status changed
"
+
statusCallback
.
sessionId
+
"
"
+
statusCallback
.
status
+
"
"
+
statusCallback
.
networkId
);
});
g_object
.
on
(
"
status
"
,
globalThis
.
statusCallback
);
```
### off('status')<sup>9+</sup>
...
...
@@ -362,15 +328,11 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s
**示例:**
```
js
interface
offStatusCallback
{
sessionId
:
string
,
networkId
:
string
,
status
:
'
online
'
|
'
offline
'
globalThis
.
statusCallback
=
(
sessionId
,
networkId
,
status
)
=>
{
globalThis
.
response
+=
"
status changed
"
+
sessionId
+
"
"
+
status
+
"
"
+
networkId
;
}
// 删除上下线回调changeCallback
g_object
.
off
(
"
status
"
,
(
statusCallback
:
StatusCallback
)
=>
{
console
.
info
(
"
status changed
"
+
statusCallback
.
sessionId
+
"
"
+
statusCallback
.
status
+
"
"
+
statusCallback
.
networkId
);
});
g_object
.
off
(
"
status
"
,
globalThis
.
statusCallback
);
// 删除所有的上下线回调
g_object
.
off
(
"
status
"
);
```
...
...
@@ -402,7 +364,7 @@ save(deviceId: string, callback: AsyncCallback<SaveSuccessResponse>): void
```
ts
g_object
.
setSessionId
(
"
123456
"
);
g_object
.
save
(
"
local
"
,
(
err
:
BusinessError
,
result
:
distributedObject
.
SaveSuccessResponse
)
=>
{
g_object
.
save
(
"
local
"
,
(
err
,
result
)
=>
{
if
(
err
)
{
console
.
info
(
"
save failed, error code =
"
+
err
.
code
);
console
.
info
(
"
save failed, error message:
"
+
err
.
message
);
...
...
@@ -447,12 +409,12 @@ save(deviceId: string): Promise<SaveSuccessResponse>
```
js
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 sessionId
"
+
result
.
sessionId
);
console
.
info
(
"
save version
"
+
result
.
version
);
console
.
info
(
"
save deviceId
"
+
result
.
deviceId
);
}).
catch
((
err
:
BusinessError
)
=>
{
}).
catch
((
err
)
=>
{
console
.
info
(
"
save failed, error code =
"
+
err
.
code
);
console
.
info
(
"
save failed, error message:
"
+
err
.
message
);
});
...
...
@@ -480,7 +442,7 @@ revokeSave(callback: AsyncCallback<RevokeSaveSuccessResponse>): void
```
js
g_object
.
setSessionId
(
"
123456
"
);
// 持久化数据
g_object
.
save
(
"
local
"
,
(
err
:
BusinessError
,
result
:
distributedObject
.
SaveSuccessResponse
)
=>
{
g_object
.
save
(
"
local
"
,
(
err
,
result
)
=>
{
if
(
err
)
{
console
.
info
(
"
save failed, error code =
"
+
err
.
code
);
console
.
info
(
"
save failed, error message:
"
+
err
.
message
);
...
...
@@ -492,7 +454,7 @@ g_object.save("local", (err: BusinessError, result: distributedObject.SaveSucces
console
.
info
(
"
save deviceId:
"
+
result
.
deviceId
);
});
// 删除持久化保存的数据
g_object
.
revokeSave
((
err
:
BusinessError
,
result
:
distributedObject
.
RevokeSaveSuccessResponse
)
=>
{
g_object
.
revokeSave
((
err
,
result
)
=>
{
if
(
err
)
{
console
.
info
(
"
revokeSave failed, error code =
"
+
err
.
code
);
console
.
info
(
"
revokeSave failed, error message:
"
+
err
.
message
);
...
...
@@ -525,20 +487,20 @@ revokeSave(): Promise<RevokeSaveSuccessResponse>
```
ts
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 sessionId
"
+
result
.
sessionId
);
console
.
info
(
"
save version
"
+
result
.
version
);
console
.
info
(
"
save deviceId
"
+
result
.
deviceId
);
}).
catch
((
err
:
BusinessError
)
=>
{
}).
catch
((
err
)
=>
{
console
.
info
(
"
save failed, error code =
"
+
err
.
code
);
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
(
"
sessionId
"
+
result
.
sessionId
);
}).
catch
((
err
:
BusinessError
)
=>
{
}).
catch
((
err
)
=>
{
console
.
info
(
"
revokeSave failed, error code =
"
+
err
.
code
);
console
.
info
(
"
revokeSave failed, error message =
"
+
err
.
message
);
});
...
...
@@ -573,17 +535,8 @@ createDistributedObject(source: object): DistributedObject
```
js
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
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
);
// 创建对象,对象包含4个属性类型,string,number,boolean和Object
let
g_object
=
distributedObject
.
createDistributedObject
({
name
:
"
Amy
"
,
age
:
18
,
isVis
:
false
,
parent
:{
mother
:
"
jack mom
"
,
father
:
"
jack Dad
"
}});
```
## DistributedObject<sup>(deprecated)</sup>
...
...
@@ -620,17 +573,7 @@ setSessionId(sessionId?: string): boolean
```
js
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
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
);
let
g_object
=
distributedObject
.
createDistributedObject
({
name
:
"
Amy
"
,
age
:
18
,
isVis
:
false
,
parent
:{
mother
:
"
jack mom
"
,
father
:
"
jack Dad
"
}});;
// g_object加入分布式组网
g_object
.
setSessionId
(
distributedObject
.
genSessionId
());
// 设置为""退出分布式组网
...
...
@@ -660,29 +603,16 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<stri
```
js
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
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
);
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
]]);
}
let
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')<sup>(deprecated)</sup>
...
...
@@ -709,30 +639,9 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array<st
```
js
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
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
);
let
g_object
=
distributedObject
.
createDistributedObject
({
name
:
"
Amy
"
,
age
:
18
,
isVis
:
false
,
parent
:{
mother
:
"
jack mom
"
,
father
:
"
jack Dad
"
}});
// 删除数据变更回调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
"
,
globalThis
.
changeCallback
);
// 删除所有的数据变更回调
g_object
.
off
(
"
change
"
);
```
...
...
@@ -760,27 +669,11 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st
```
js
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
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
globalThis
.
statusCallback
=
(
sessionId
,
networkId
,
status
)
=>
{
globalThis
.
response
+=
"
status changed
"
+
sessionId
+
"
"
+
status
+
"
"
+
networkId
;
}
let
g_object
:
distributedObject
.
DistributedObject
=
distributedObject
.
createDistributedObject
(
source
);
g_object
.
on
(
"
status
"
,
(
statusCallback
:
StatusCallback
)
=>
{
console
.
info
(
"
status changed
"
+
statusCallback
.
sessionId
+
"
"
+
statusCallback
.
status
+
"
"
+
statusCallback
.
networkId
);
});
let
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')<sup>(deprecated)</sup>
...
...
@@ -807,26 +700,12 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s
```
js
import
distributedObject
from
'
@ohos.data.distributedDataObject
'
;
interface
sourceObject
{
name
:
string
,
age
:
number
,
isVis
:
boolean
let
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
;
}
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
g_object
.
off
(
"
status
"
,
(
statusCallback
:
offStatusCallback
)
=>
{
console
.
info
(
"
status changed
"
+
statusCallback
.
sessionId
+
"
"
+
statusCallback
.
status
+
"
"
+
statusCallback
.
deviceId
);
});
g_object
.
off
(
"
status
"
,
globalThis
.
statusCallback
);
// 删除所有的上下线回调
g_object
.
off
(
"
status
"
);
```
```
\ No newline at end of file
zh-cn/application-dev/reference/apis/js-apis-data-preferences.md
浏览文件 @
279ce8b3
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录