Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
0e47e7bf
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看板
未验证
提交
0e47e7bf
编写于
7月 28, 2022
作者:
马
马根堂
提交者:
Gitee
7月 28, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Signed-off-by: 18392170496 <magentang3@huawei.com>
上级
59cfe790
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
178 addition
and
15 deletion
+178
-15
zh-cn/application-dev/reference/apis/js-apis-rpc.md
zh-cn/application-dev/reference/apis/js-apis-rpc.md
+178
-15
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-rpc.md
浏览文件 @
0e47e7bf
...
...
@@ -1322,7 +1322,7 @@ writeFloatArray(floatArray: number[]): boolean
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| floatArray | number[] | 是 | 要写入的浮点数组。 |
| floatArray | number[] | 是 | 要写入的浮点数组。
由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。
|
**返回值:**
| 类型 | 说明 |
...
...
@@ -1349,7 +1349,7 @@ readFloatArray(dataIn: number[]) : void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| dataIn | number[] | 是 | 要读取的浮点数组。 |
| dataIn | number[] | 是 | 要读取的浮点数组。
由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。
|
**示例:**
...
...
@@ -1764,20 +1764,20 @@ readException(): void
let reply = rpc.MessageParcel.create();
data.writeInt(1);
data.writeString("hello");
proxy.sendRequest(1, data, reply, option)
proxy.sendRequest
Async
(1, data, reply, option)
.then(function(errCode) {
if (errCode === 0) {
console.log("sendRequest got result");
console.log("sendRequest
Async
got result");
reply.readException();
let msg = reply.readString();
console.log("RPCTest: reply msg: " + msg);
} else {
console.log("RPCTest: sendRequest failed, errCode: " + errCode);
console.log("RPCTest: sendRequest
Async
failed, errCode: " + errCode);
}
}).catch(function(e) {
console.log("RPCTest: sendRequest got exception: " + e.message);
console.log("RPCTest: sendRequest
Async
got exception: " + e.message);
}).finally (() => {
console.log("RPCTest: sendRequest ends, reclaim parcel");
console.log("RPCTest: sendRequest
Async
ends, reclaim parcel");
data.reclaim();
reply.reclaim();
});
...
...
@@ -2504,7 +2504,7 @@ queryLocalInterface(descriptor: string): IRemoteBroker
### sendRequest<sup>(deprecated)</sup>
> **说明:**
> 从 API Version 8 开始废弃,建议使用[sendRequest
<sup>8+</sup>](#sendrequest8
)替代。
> 从 API Version 8 开始废弃,建议使用[sendRequest
Async<sup>9+</sup>](#sendrequestasync9
)替代。
sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean
...
...
@@ -2526,7 +2526,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
| boolean | 返回一个布尔值,true表示成功,false表示失败。|
### sendRequest<sup>8+</sup>
### sendRequest<sup>8+(deprecated)</sup>
> **说明:**
> 从 API Version 9 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9)替代。
sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise
<
SendRequestResult
>
...
...
@@ -2534,6 +2537,27 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
**系统能力**
:SystemCapability.Communication.IPC.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 |
| data |
[
MessageParcel
](
#messageparcel
)
| 是 | 保存待发送数据的
MessageParcel对象。 |
| reply |
[
MessageParcel
](
#messageparcel
)
| 是 | 接收应答数据的MessageParcel对象。 |
| options |
[
MessageOption
](
#messageoption
)
| 是 | 本次请求的同异步模式,默认同步调用。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
SendRequestResult
>
| 返回一个期约,兑现值是sendRequestResult实例。|
### sendRequestAsync<sup>9+</sup>
sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise
<
SendRequestResult
>
以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。
**系统能力**
:SystemCapability.Communication.IPC.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
...
...
@@ -2653,7 +2677,7 @@ isObjectDead(): boolean
### sendRequest<sup>(deprecated)</sup>
> **说明:**
> 从 API Version 8 开始废弃,建议使用[sendRequest
<sup>8+</sup>](#sendrequest8
-2)替代。
> 从 API Version 8 开始废弃,建议使用[sendRequest
Async<sup>9+</sup>](#sendrequestasync9
-2)替代。
sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean
...
...
@@ -2715,7 +2739,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
reply.reclaim();
```
### sendRequest<sup>8+</sup>
### sendRequest<sup>8+(deprecated)</sup>
> **说明:**
> 从 API Version 9 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9-2)替代。
sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise
<
SendRequestResult
>
...
...
@@ -2782,6 +2809,72 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
});
```
### sendRequestAsync<sup>9+</sup>
sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise
<
SendRequestResult
>
以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。
**系统能力**
:SystemCapability.Communication.IPC.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 |
| data |
[
MessageParcel
](
#messageparcel
)
| 是 | 保存待发送数据的
MessageParcel对象。 |
| reply |
[
MessageParcel
](
#messageparcel
)
| 是 | 接收应答数据的MessageParcel对象。 |
| options |
[
MessageOption
](
#messageoption
)
| 是 | 本次请求的同异步模式,默认同步调用。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
SendRequestResult
>
| 返回一个期约,兑现值是sendRequestResult实例。|
**示例:**
```
import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
console.log("RpcClient: js onConnect called.");
proxy = remoteProxy;
},
onDisconnect: function(elementName) {
console.log("RpcClient: onDisconnect");
},
onFailed: function() {
console.log("RpcClient: onFailed");
}
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility",
};
FA.connectAbility(want, connect);
let option = new rpc.MessageOption();
let data = rpc.MessageParcel.create();
let reply = rpc.MessageParcel.create();
data.writeInt(1);
data.writeString("hello");
proxy.sendRequestAsync(1, data, reply, option)
.then(function(result) {
if (result.errCode === 0) {
console.log("sendRequestAsync got result");
result.reply.readException();
let msg = result.reply.readString();
console.log("RPCTest: reply msg: " + msg);
} else {
console.log("RPCTest: sendRequestAsync failed, errCode: " + result.errCode);
}
}).catch(function(e) {
console.log("RPCTest: sendRequestAsync got exception: " + e.message);
}).finally (() => {
console.log("RPCTest: sendRequestAsync ends, reclaim parcel");
data.reclaim();
reply.reclaim();
});
```
### sendRequest<sup>8+</sup>
...
...
@@ -3082,7 +3175,7 @@ isObjectDead(): boolean
| -------- | -------- | -------- |
| TF_SYNC | 0 | 同步调用。 |
| TF_ASYNC | 1 | 异步调用。 |
| TF_ACCEPT_FDS | 0x10 | 指示
[
sendRequest
](
#sendrequest8
)
接口可以返回文件描述符。 |
| TF_ACCEPT_FDS | 0x10 | 指示
[
sendRequest
Async
](
#sendrequestAsync
)
接口可以返回文件描述符。 |
| TF_WAIT_TIME | 8 | 等待时间。单位秒。 |
...
...
@@ -3471,7 +3564,7 @@ RemoteObject构造函数。
### sendRequest<sup>(deprecated)</sup>
> **说明:**
> 从 API Version 8 开始废弃,建议使用[sendRequest
<sup>8+</sup>](#sendrequest8
-4)替代。
> 从 API Version 8 开始废弃,建议使用[sendRequest
Async<sup>9+</sup>](#sendrequestasync9
-4)替代。
sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): boolean
...
...
@@ -3535,7 +3628,10 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
```
### sendRequest<sup>8+</sup>
### sendRequest<sup>8+(deprecated)</sup>
> **说明:**
> 从 API Version 9 开始废弃,建议使用[sendRequestAsync<sup>9+</sup>](#sendrequestasync9-3)替代。
sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise
<
SendRequestResult
>
...
...
@@ -3604,6 +3700,73 @@ sendRequest(code : number, data : MessageParcel, reply : MessageParcel, options
});
```
### sendRequestAsync<sup>9+</sup>
sendRequestAsync(code : number, data : MessageParcel, reply : MessageParcel, options : MessageOption): Promise
<
SendRequestResult
>
以同步或异步方式向对端进程发送MessageParcel消息。如果为选项设置了异步模式,则期约立即兑现,reply报文里没有内容。如果为选项设置了同步模式,则期约将在sendRequestAsync返回时兑现,回复内容在reply报文里。
**系统能力**
:SystemCapability.Communication.IPC.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| code | number | 是 | 本次请求调用的消息码,由通信双方确定。如果接口由IDL工具生成,则消息代码由IDL自动生成。 |
| data |
[
MessageParcel
](
#messageparcel
)
| 是 | 保存待发送数据的
MessageParcel对象。 |
| reply |
[
MessageParcel
](
#messageparcel
)
| 是 | 接收应答数据的MessageParcel对象。 |
| options |
[
MessageOption
](
#messageoption
)
| 是 | 本次请求的同异步模式,默认同步调用。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Promise
<
SendRequestResult
>
| 返回一个期约,兑现值是sendRequestResult实例。|
**示例:**
```
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
}
let testRemoteObject = new TestRemoteObject("testObject");
let option = new rpc.MessageOption();
let data = rpc.MessageParcel.create();
let reply = rpc.MessageParcel.create();
data.writeInt(1);
data.writeString("hello");
testRemoteObject.sendRequestAsync(1, data, reply, option)
.then(function(result) {
if (result.errCode === 0) {
console.log("sendRequestAsync got result");
result.reply.readException();
let msg = result.reply.readString();
console.log("RPCTest: reply msg: " + msg);
} else {
console.log("RPCTest: sendRequestAsync failed, errCode: " + result.errCode);
}
}).catch(function(e) {
console.log("RPCTest: sendRequestAsync got exception: " + e.message);
}).finally (() => {
console.log("RPCTest: sendRequestAsync ends, reclaim parcel");
data.reclaim();
reply.reclaim();
});
```
### sendRequest<sup>8+</sup>
...
...
@@ -3672,7 +3835,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
onRemoteRequest(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean
sendRequest请求的响应处理函数,服务端在该函数里处理请求,回复结果。
sendRequest
Async
请求的响应处理函数,服务端在该函数里处理请求,回复结果。
**系统能力**
:SystemCapability.Communication.IPC.Core
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录