Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
14ae7feb
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
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看板
未验证
提交
14ae7feb
编写于
4月 27, 2023
作者:
O
openharmony_ci
提交者:
Gitee
4月 27, 2023
浏览文件
操作
浏览文件
下载
差异文件
!17722 (3.2Beat5)【IPC&RPC】同步master修改内容
Merge pull request !17722 from Lixiaoying25/OpenHarmony-3.2-Beta5
上级
d80b07f5
6e8dbb01
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
280 addition
and
142 deletion
+280
-142
zh-cn/application-dev/reference/apis/js-apis-rpc.md
zh-cn/application-dev/reference/apis/js-apis-rpc.md
+280
-142
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-rpc.md
浏览文件 @
14ae7feb
...
...
@@ -2391,10 +2391,12 @@ readException(): void
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -2410,9 +2412,13 @@ readException(): void
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...
...
@@ -2729,11 +2735,11 @@ static closeFileDescriptor(fd: number): void
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
try {
rpc.MessageSequence.closeFileDescriptor(fd);
rpc.MessageSequence.closeFileDescriptor(f
ile.f
d);
} catch(error) {
console.info("rpc close file descriptor fail, errorCode " + error.code);
console.info("rpc close file descriptor fail, errorMessage" + error.message);
...
...
@@ -2771,11 +2777,11 @@ static dupFileDescriptor(fd: number) :number
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
try {
let newFd = rpc.MessageSequence.dupFileDescriptor(fd);
let newFd = rpc.MessageSequence.dupFileDescriptor(f
ile.f
d);
} catch(error) {
console.info("rpc dup file descriptor fail, errorCode " + error.code);
console.info("rpc dup file descriptor fail, errorMessage" + error.message);
...
...
@@ -2800,13 +2806,13 @@ containFileDescriptors(): boolean
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let sequence = new rpc.MessageSequence();
let filePath = "path/to/file";
let r1 = sequence.containFileDescriptors();
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
try {
sequence.writeFileDescriptor(fd);
sequence.writeFileDescriptor(f
ile.f
d);
} catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code);
console.info("rpc write file descriptor fail, errorMessage" + error.message);
...
...
@@ -2845,12 +2851,12 @@ writeFileDescriptor(fd: number): void
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let sequence = new rpc.MessageSequence();
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
try {
sequence.writeFileDescriptor(fd);
sequence.writeFileDescriptor(f
ile.f
d);
} catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code);
console.info("rpc write file descriptor fail, errorMessage" + error.message);
...
...
@@ -2882,12 +2888,12 @@ readFileDescriptor(): number
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let sequence = new rpc.MessageSequence();
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
try {
sequence.writeFileDescriptor(fd);
sequence.writeFileDescriptor(f
ile.f
d);
} catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code);
console.info("rpc write file descriptor fail, errorMessage" + error.message);
...
...
@@ -4846,11 +4852,13 @@ readException(): void
**系统能力**:SystemCapability.Communication.IPC.Core
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.;featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -4866,9 +4874,13 @@ readException(): void
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...
...
@@ -5158,10 +5170,10 @@ static closeFileDescriptor(fd: number): void
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
rpc.MessageParcel.closeFileDescriptor(fd);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
rpc.MessageParcel.closeFileDescriptor(f
ile.f
d);
```
### dupFileDescriptor<sup>8+</sup>
...
...
@@ -5187,10 +5199,10 @@ static dupFileDescriptor(fd: number) :number
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let newFd = rpc.MessageParcel.dupFileDescriptor(fd);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
let newFd = rpc.MessageParcel.dupFileDescriptor(f
ile.f
d);
```
### containFileDescriptors<sup>8+</sup>
...
...
@@ -5210,12 +5222,12 @@ containFileDescriptors(): boolean
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let parcel = new rpc.MessageParcel();
let filePath = "path/to/file";
let r1 = parcel.containFileDescriptors();
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let writeResult = parcel.writeFileDescriptor(fd);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
let writeResult = parcel.writeFileDescriptor(f
ile.f
d);
console.log("RpcTest: parcel writeFd result is : " + writeResult);
let containFD = parcel.containFileDescriptors();
console.log("RpcTest: parcel after write fd containFd result is : " + containFD);
...
...
@@ -5244,11 +5256,11 @@ writeFileDescriptor(fd: number): boolean
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let parcel = new rpc.MessageParcel();
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let writeResult = parcel.writeFileDescriptor(fd);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
let writeResult = parcel.writeFileDescriptor(f
ile.f
d);
console.log("RpcTest: parcel writeFd result is : " + writeResult);
```
...
...
@@ -5269,11 +5281,11 @@ readFileDescriptor(): number
**示例:**
```
ts
import f
ileio from '@ohos.fileio
';
import f
s from '@ohos.file.fs
';
let parcel = new rpc.MessageParcel();
let filePath = "path/to/file";
let f
d = fileio.openSync(filePath, 0o2| 0o100, 0o666
);
let writeResult = parcel.writeFileDescriptor(fd);
let f
ile = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE
);
let writeResult = parcel.writeFileDescriptor(f
ile.f
d);
let readFD = parcel.readFileDescriptor();
console.log("RpcTest: parcel read fd is : " + readFD);
```
...
...
@@ -5438,6 +5450,7 @@ marshalling(dataOut: MessageSequence): boolean
| 类型 | 说明 |
| ------- | ----------------------------------------- |
| boolean | true:封送成功,false:封送失败。
**示例:**
```
ts
...
...
@@ -5543,6 +5556,7 @@ marshalling(dataOut: MessageParcel): boolean
| 类型 | 说明 |
| ------- | ----------------------------------------- |
| boolean | true:封送成功,false:封送失败。
**示例:**
```
ts
...
...
@@ -5649,37 +5663,43 @@ asObject(): IRemoteObject
return this;
}
}
let remoteObject = new TestAbility().asObject();
let remoteObject = new TestAbility(
"testObject"
).asObject();
```
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function
(elementName, remoteProxy) {
onConnect: function(elementName, remoteProxy) {
console.log("RpcClient: js onConnect called.");
proxy = remoteProxy;
},
onDisconnect: function
(elementName) {
onDisconnect: function(elementName) {
console.log("RpcClient: onDisconnect");
},
onFailed: function
() {
onFailed: function() {
console.log("RpcClient: onFailed");
}
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的asObject接口方法获取代理或远端对象
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的asObject接口方法获取代理或远端对象
```
ts
class TestProxy {
remote: rpc.RemoteObject;
...
...
@@ -6058,7 +6078,7 @@ isObjectDead(): boolean
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.IPC.Core。
| 名称 |
默认
值 | 说明 |
| 名称 | 值 | 说明 |
| --------------------- | ----------------------- | --------------------------------- |
| PING_TRANSACTION | 1599098439 (0x5f504e47) | 内部指令码,用于测试IPC服务正常。 |
| DUMP_TRANSACTION | 1598311760 (0x5f444d50) | 内部指令码,获取Binder内部状态。 |
...
...
@@ -6093,10 +6113,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6112,13 +6134,17 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
```
ts
let option = new rpc.MessageOption();
let data = rpc.MessageParcel.create();
...
...
@@ -6163,10 +6189,12 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6182,11 +6210,15 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
```
ts
...
...
@@ -6241,10 +6273,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6260,9 +6294,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...
...
@@ -6311,11 +6349,13 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
| callback | AsyncCallback<RequestResult> | 是 | 接收发送结果的回调。 |
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6331,7 +6371,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
function sendRequestCallback(result) {
if (result.errCode === 0) {
...
...
@@ -6346,7 +6386,11 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
result.data.reclaim();
result.reply.reclaim();
}
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...
...
@@ -6358,7 +6402,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
data.writeInt(1);
data.writeString("hello");
try {
proxy.sendRequest(1, data, reply, option, sendRequestCallback);
proxy.send
Message
Request(1, data, reply, option, sendRequestCallback);
} catch(error) {
console.info("rpc send sequence request fail, errorCode " + error.code);
console.info("rpc send sequence request fail, errorMessage " + error.message);
...
...
@@ -6387,10 +6431,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6406,9 +6452,9 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
function sendRequestCallback(result) {
function sendRequestCallback(result) {
if (result.errCode === 0) {
console.log("sendRequest got result");
result.reply.readException();
...
...
@@ -6421,7 +6467,11 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
result.data.reclaim();
result.reply.reclaim();
}
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...
...
@@ -6465,17 +6515,19 @@ getLocalInterface(interface: string): IRemoteBroker
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// 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) {
onDisconnect: function(elementName) {
console.log("RpcClient: onDisconnect");
},
onFailed: function() {
...
...
@@ -6483,10 +6535,14 @@ getLocalInterface(interface: string): IRemoteBroker
}
};
let want = {
"bundleName":"com.ohos.server",
"abilityName":
"com.ohos.server.Main
Ability",
"bundleName":
"com.ohos.server",
"abilityName":
"com.ohos.server.Entry
Ability",
};
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getLocalInterface接口方法查询接口对象
...
...
@@ -6525,17 +6581,19 @@ queryLocalInterface(interface: string): IRemoteBroker
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// 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) {
onDisconnect: function(elementName) {
console.log("RpcClient: onDisconnect");
},
onFailed: function() {
...
...
@@ -6543,12 +6601,16 @@ queryLocalInterface(interface: string): IRemoteBroker
}
};
let want = {
"bundleName":"com.ohos.server",
"abilityName":
"com.ohos.server.Main
Ability",
"bundleName":
"com.ohos.server",
"abilityName":
"com.ohos.server.Entry
Ability",
};
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的queryLocalInterface接口获取接口对象
```
ts
...
...
@@ -6576,15 +6638,17 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
以下错误码的详细介绍请参见[ohos.rpc错误码](../errorcodes/errorcode-rpc.md)
| 错误码ID | 错误信息 |
| ------- | -------- |
| 1900008 | proxy or remote object is invalid |
| -------
-
| -------- |
| 1900008
| proxy or remote object is invalid |
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6600,13 +6664,17 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的registerDeathRecipient接口注册死亡回调
```
ts
class MyDeathRecipient {
onRemoteDied() {
...
...
@@ -6647,10 +6715,12 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6666,11 +6736,15 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的addDeathRecippient接口方法新增死亡回调
```
ts
...
...
@@ -6685,7 +6759,7 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean
### unregisterDeathRecipient<sup>9+</sup>
unregisterDeathRecipient(recipient: DeathRecipient, flags: number):
boolean
unregisterDeathRecipient(recipient: DeathRecipient, flags: number):
void
注销用于接收远程对象死亡通知的回调。
...
...
@@ -6708,10 +6782,12 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): boolean
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6727,12 +6803,16 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): boolean
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的addDeathRecippient接口方法新增死亡回调
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的unregisterDeathRecipient接口方法注销死亡回调
```
ts
class MyDeathRecipient {
...
...
@@ -6775,10 +6855,12 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6794,11 +6876,15 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的removeDeathRecipient接口方法去注册死亡回调
```
ts
...
...
@@ -6837,10 +6923,12 @@ getDescriptor(): string
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6856,9 +6944,13 @@ getDescriptor(): string
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getDescriptor接口方法获取对象的接口描述符
...
...
@@ -6890,10 +6982,12 @@ getInterfaceDescriptor(): string
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6909,11 +7003,15 @@ getInterfaceDescriptor(): string
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getInterfaceDescriptor接口方法查询当前代理对象接口的描述符
```
ts
...
...
@@ -6937,10 +7035,12 @@ isObjectDead(): boolean
**示例:**
获取服务
Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```
ts
import FA from "@ohos.ability.featureAbility";
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy;
let connect = {
onConnect: function(elementName, remoteProxy) {
...
...
@@ -6956,10 +7056,14 @@ isObjectDead(): boolean
};
let want = {
"bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.
Main
Ability",
"abilityName": "com.ohos.server.
Entry
Ability",
};
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的isObjectDead接口方法判断当前对象是否已经死亡
...
...
@@ -6974,7 +7078,7 @@ isObjectDead(): boolean
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.IPC.Core。
| 名称 |
默认
值 | 说明 |
| 名称 | 值 | 说明 |
| ------------- | ---- | ----------------------------------------------------------- |
| TF_SYNC | 0 | 同步调用标识。 |
| TF_ASYNC | 1 | 异步调用标识。 |
...
...
@@ -6992,9 +7096,9 @@ MessageOption构造函数。
**参数:**
| 参数名 | 类型
| 必填 | 说明 |
| --------- |
------ | ---- | -------------------------------------- |
| syncFlags | number
| 否 | 同步调用或异步调用标志。默认同步调用。 |
| 参数名 | 类型
| 必填 | 说明 |
| ------ | -
------ | ---- | -------------------------------------- |
| async | boolean
| 否 | 同步调用或异步调用标志。默认同步调用。 |
**示例:**
...
...
@@ -7098,7 +7202,7 @@ getFlags(): number
console.info("error " + error);
}
```
### setFlags
setFlags(flags: number): void
...
...
@@ -7269,11 +7373,11 @@ static getCallingTokenId(): number;
**系统能力**:SystemCapability.Communication.IPC.Core
**返回值:**
| 类型 | 说明 |
| ------ | --------------------- |
| number | 返回调用者的TokenId。 |
**示例:**
```
ts
...
...
@@ -7720,9 +7824,9 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
**返回值:**
| 类型 | 说明
|
| ---------------------------- | ----
----------------------------------------- |
| Promise
<
RequestResult
>
| 返回一个期约,兑现值是send
RequestResult实例。 |
| 类型 | 说明
|
| ---------------------------- |
----------------------------------------- |
| Promise<RequestResult> | 返回一个期约,兑现值是
RequestResult实例。 |
**示例:**
...
...
@@ -8259,13 +8363,13 @@ getDescriptor(): string
}
}
let testRemoteObject = new TestRemoteObject("testObject");
console.log("RpcServer: descriptor is: " + descriptor);
try {
let descriptor = testRemoteObject.getDescriptor();
} catch(error) {
console.info("rpc get local interface fail, errorCode " + error.code);
console.info("rpc get local interface fail, errorMessage " + error.message);
}
console
.
log
(
"
RpcServer: descriptor is:
"
+
descriptor
);
```
### getInterfaceDescriptor<sup>(deprecated)</sup>
...
...
@@ -8340,8 +8444,8 @@ modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
try {
this.modifyLocalInterface(this, descriptor);
} catch(error) {
console
.
info
(
rpc
attach
local
interface
fail
,
errorCode
"
+ error.code);
console.info(rpc attach local interface fail, errorMessage
"
+
error
.
message
);
console.info(
"
rpc attach local interface fail, errorCode " + error.code);
console.info(
"
rpc attach local interface fail, errorMessage " + error.message);
}
}
registerDeathRecipient(recipient: MyDeathRecipient, flags: number) {
...
...
@@ -8414,7 +8518,7 @@ attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
映射内存保护类型:
| 名称 |
默认
值 | 说明 |
| 名称 | 值 | 说明 |
| ---------- | --- | ------------------ |
| PROT_EXEC | 4 | 映射的内存可执行 |
| PROT_NONE | 0 | 映射的内存不可访问 |
...
...
@@ -8990,4 +9094,38 @@ readFromAshmem(size: number, offset: number): number[]
console.log("RpcTest: write to Ashmem result is : " + writeResult);
let readResult = ashmem.readFromAshmem(5, 0);
console.log("RpcTest: read to Ashmem result is : " + readResult);
```
\ No newline at end of file
```
## 获取context
**示例:**
```
ts
import Ability from '@ohos.app.ability.UIAbility';
export default class MainAbility extends Ability {
onCreate(want, launchParam) {
console.log("[Demo] MainAbility onCreate");
globalThis.context = this.context;
}
onDestroy() {
console.log("[Demo] MainAbility onDestroy");
}
onWindowStageCreate(windowStage) {
// Main window is created, set main page for this ability
console.log("[Demo] MainAbility onWindowStageCreate");
}
onWindowStageDestroy() {
// Main window is destroyed, release UI related resources
console.log("[Demo] MainAbility onWindowStageDestroy");
}
onForeground() {
// Ability has brought to foreground
console.log("[Demo] MainAbility onForeground");
}
onBackground() {
// Ability has back to background
console.log("[Demo] MainAbility onBackground");
}
};
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录