提交 6dd94101 编写于 作者: W wufengshan

补充权限描述和示例代码

Signed-off-by: Nwufengshan <wufengshan@huawei.com>
上级 c64464dc
...@@ -62,11 +62,38 @@ ...@@ -62,11 +62,38 @@
以一次分布式数据对象同步为例,说明开发步骤。 以一次分布式数据对象同步为例,说明开发步骤。
1. 准备工作,导入@ohos.data.distributedDataObject模块到开发环境。 1. 准备工作,导入@ohos.data.distributedDataObject模块到开发环境。
```js ```js
import distributedObject from '@ohos.data.distributedDataObject' import distributedObject from '@ohos.data.distributedDataObject';
``` ```
2. 请求权限。需要在`config.json`里面进行配置请求权限,示例代码如下:
```
{
"module": {
"reqPermissions": [
{
"name": "ohos.permission.DISTRIBUTED_DATASYNC"
}
]
}
}
```
这个权限还需要在应用首次启动的时候弹窗获取用户授权,可以通过如下代码实现:
```js
import featureAbility from '@ohos.ability.featureAbility';
function grantPermission() {
console.info('grantPermission');
let context = featureAbility.getContext();
context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], 666, function (result) {
console.info(`result.requestCode=${result.requestCode}`)
})
console.info('end grantPermission');
}
grantPermission();
```
2. 获取分布式数据对象实例。 3. 获取分布式数据对象实例。
以下为创建分布式数据对象的代码示例: 以下为创建分布式数据对象的代码示例:
```js ```js
...@@ -76,7 +103,7 @@ ...@@ -76,7 +103,7 @@
``` ```
3. 加入同步组网。同步组网中的数据对象分为发起方和被拉起方。 4. 加入同步组网。同步组网中的数据对象分为发起方和被拉起方。
以下为加入同步组网的代码示例: 以下为加入同步组网的代码示例:
...@@ -93,7 +120,7 @@ ...@@ -93,7 +120,7 @@
//收到status上线后remote_object同步数据,即name变成jack,age是18 //收到status上线后remote_object同步数据,即name变成jack,age是18
``` ```
4. 监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。 5. 监听对象数据变更。可监听对端数据的变更,以callback作为变更回调实例。
以下为监听对象数据变更的代码示例。 以下为监听对象数据变更的代码示例。
...@@ -112,7 +139,7 @@ ...@@ -112,7 +139,7 @@
local_object.on("change", this.changeCallback.bind(this)); local_object.on("change", this.changeCallback.bind(this));
``` ```
5. 修改对象属性,对象属性支持基本类型(数字类型、布尔类型、字符串类型)以及复杂类型(数组、基本类型嵌套等)。 6. 修改对象属性,对象属性支持基本类型(数字类型、布尔类型、字符串类型)以及复杂类型(数组、基本类型嵌套等)。
以下为修改分布式数据对象属性的代码示例: 以下为修改分布式数据对象属性的代码示例:
```js ```js
...@@ -132,13 +159,13 @@ ...@@ -132,13 +159,13 @@
local_object.parent.mother = "mom"; local_object.parent.mother = "mom";
``` ```
6. 访问对象。可以通过直接获取的方式访问到分布式数据对象的属性,且该数据为组网内的最新数据。 7. 访问对象。可以通过直接获取的方式访问到分布式数据对象的属性,且该数据为组网内的最新数据。
以下为访问对象的代码示例: 以下为访问对象的代码示例:
```js ```js
console.info("name " + local_object["name"]); console.info("name " + local_object["name"]);
``` ```
7. 删除监听数据变更。可以指定删除监听的数据变更回调;也可以不指定,这将会删除该分布式数据对象的所有数据变更回调。 8. 删除监听数据变更。可以指定删除监听的数据变更回调;也可以不指定,这将会删除该分布式数据对象的所有数据变更回调。
以下为取消监听数据变更的代码示例: 以下为取消监听数据变更的代码示例:
```js ```js
...@@ -147,7 +174,7 @@ ...@@ -147,7 +174,7 @@
//删除所有的变更回调 //删除所有的变更回调
local_object.off("change"); local_object.off("change");
``` ```
8. 监听分布式对象的上下线。可以监听对端分布式数据对象的上下线。 9. 监听分布式对象的上下线。可以监听对端分布式数据对象的上下线。
以下为访问对象的代码示例: 以下为访问对象的代码示例:
```js ```js
function statusCallback(sessionId, networkId, status) { function statusCallback(sessionId, networkId, status) {
...@@ -156,7 +183,7 @@ ...@@ -156,7 +183,7 @@
local_object.on("status", this.statusCallback); local_object.on("status", this.statusCallback);
``` ```
9. 删除监听分布式对象的上下线。可以指定删除监听的上下线回调;也可以不指定,这将会删除该分布式数据对象的所有上下线回调。 10. 删除监听分布式对象的上下线。可以指定删除监听的上下线回调;也可以不指定,这将会删除该分布式数据对象的所有上下线回调。
以下为取消监听数据变更的代码示例: 以下为取消监听数据变更的代码示例:
```js ```js
...@@ -165,7 +192,7 @@ ...@@ -165,7 +192,7 @@
//删除所有的上下线回调 //删除所有的上下线回调
local_object.off("status"); local_object.off("status");
``` ```
10. 退出同步组网。分布式对象退出组网后,本地的数据变更对端不会同步。 11. 退出同步组网。分布式对象退出组网后,本地的数据变更对端不会同步。
以下为退出同步组网的代码示例: 以下为退出同步组网的代码示例:
```js ```js
......
...@@ -68,6 +68,8 @@ setSessionId(sessionId?: string): boolean ...@@ -68,6 +68,8 @@ setSessionId(sessionId?: string): boolean
设置同步的sessionId,当可信组网中有多个设备时,多个设备间的对象如果设置为同一个sessionId,就能自动同步。 设置同步的sessionId,当可信组网中有多个设备时,多个设备间的对象如果设置为同一个sessionId,就能自动同步。
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。 **系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:** **参数:**
...@@ -136,7 +138,7 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st ...@@ -136,7 +138,7 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| type | string | 是 | 事件类型,固定为'change',表示数据变更。 | | type | string | 是 | 事件类型,固定为'change',表示数据变更。 |
| callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | 否 | 需要删除的变更回调,若不设置则删除该对象所有的数据变更回调。<br>sessionId:标识变更对象的sessionId; <br>fields:标识对象变更的属性名。 | | callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | 否 | 需要删除的数据变更回调,若不设置则删除该对象所有的数据变更回调。<br>sessionId:标识变更对象的sessionId; <br>fields:标识对象变更的属性名。 |
**示例:** **示例:**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册