未验证 提交 14ae7feb 编写于 作者: O openharmony_ci 提交者: Gitee

!17722 (3.2Beat5)【IPC&RPC】同步master修改内容

Merge pull request !17722 from Lixiaoying25/OpenHarmony-3.2-Beta5
...@@ -2391,10 +2391,12 @@ readException(): void ...@@ -2391,10 +2391,12 @@ readException(): void
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -2410,9 +2412,13 @@ readException(): void ...@@ -2410,9 +2412,13 @@ readException(): void
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...@@ -2729,11 +2735,11 @@ static closeFileDescriptor(fd: number): void ...@@ -2729,11 +2735,11 @@ static closeFileDescriptor(fd: number): void
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
rpc.MessageSequence.closeFileDescriptor(fd); rpc.MessageSequence.closeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc close file descriptor fail, errorCode " + error.code); console.info("rpc close file descriptor fail, errorCode " + error.code);
console.info("rpc close file descriptor fail, errorMessage" + error.message); console.info("rpc close file descriptor fail, errorMessage" + error.message);
...@@ -2771,11 +2777,11 @@ static dupFileDescriptor(fd: number) :number ...@@ -2771,11 +2777,11 @@ static dupFileDescriptor(fd: number) :number
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
let newFd = rpc.MessageSequence.dupFileDescriptor(fd); let newFd = rpc.MessageSequence.dupFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc dup file descriptor fail, errorCode " + error.code); console.info("rpc dup file descriptor fail, errorCode " + error.code);
console.info("rpc dup file descriptor fail, errorMessage" + error.message); console.info("rpc dup file descriptor fail, errorMessage" + error.message);
...@@ -2800,13 +2806,13 @@ containFileDescriptors(): boolean ...@@ -2800,13 +2806,13 @@ containFileDescriptors(): boolean
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let filePath = "path/to/file"; let filePath = "path/to/file";
let r1 = sequence.containFileDescriptors(); let r1 = sequence.containFileDescriptors();
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
sequence.writeFileDescriptor(fd); sequence.writeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code); console.info("rpc write file descriptor fail, errorCode " + error.code);
console.info("rpc write file descriptor fail, errorMessage" + error.message); console.info("rpc write file descriptor fail, errorMessage" + error.message);
...@@ -2845,12 +2851,12 @@ writeFileDescriptor(fd: number): void ...@@ -2845,12 +2851,12 @@ writeFileDescriptor(fd: number): void
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
sequence.writeFileDescriptor(fd); sequence.writeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code); console.info("rpc write file descriptor fail, errorCode " + error.code);
console.info("rpc write file descriptor fail, errorMessage" + error.message); console.info("rpc write file descriptor fail, errorMessage" + error.message);
...@@ -2882,12 +2888,12 @@ readFileDescriptor(): number ...@@ -2882,12 +2888,12 @@ readFileDescriptor(): number
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
sequence.writeFileDescriptor(fd); sequence.writeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code); console.info("rpc write file descriptor fail, errorCode " + error.code);
console.info("rpc write file descriptor fail, errorMessage" + error.message); console.info("rpc write file descriptor fail, errorMessage" + error.message);
...@@ -4846,11 +4852,13 @@ readException(): void ...@@ -4846,11 +4852,13 @@ readException(): void
**系统能力**:SystemCapability.Communication.IPC.Core **系统能力**:SystemCapability.Communication.IPC.Core
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.;featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -4866,9 +4874,13 @@ readException(): void ...@@ -4866,9 +4874,13 @@ readException(): void
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...@@ -5158,10 +5170,10 @@ static closeFileDescriptor(fd: number): void ...@@ -5158,10 +5170,10 @@ static closeFileDescriptor(fd: number): void
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
rpc.MessageParcel.closeFileDescriptor(fd); rpc.MessageParcel.closeFileDescriptor(file.fd);
``` ```
### dupFileDescriptor<sup>8+</sup> ### dupFileDescriptor<sup>8+</sup>
...@@ -5187,10 +5199,10 @@ static dupFileDescriptor(fd: number) :number ...@@ -5187,10 +5199,10 @@ static dupFileDescriptor(fd: number) :number
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let newFd = rpc.MessageParcel.dupFileDescriptor(fd); let newFd = rpc.MessageParcel.dupFileDescriptor(file.fd);
``` ```
### containFileDescriptors<sup>8+</sup> ### containFileDescriptors<sup>8+</sup>
...@@ -5210,12 +5222,12 @@ containFileDescriptors(): boolean ...@@ -5210,12 +5222,12 @@ containFileDescriptors(): boolean
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let parcel = new rpc.MessageParcel(); let parcel = new rpc.MessageParcel();
let filePath = "path/to/file"; let filePath = "path/to/file";
let r1 = parcel.containFileDescriptors(); let r1 = parcel.containFileDescriptors();
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeResult = parcel.writeFileDescriptor(fd); let writeResult = parcel.writeFileDescriptor(file.fd);
console.log("RpcTest: parcel writeFd result is : " + writeResult); console.log("RpcTest: parcel writeFd result is : " + writeResult);
let containFD = parcel.containFileDescriptors(); let containFD = parcel.containFileDescriptors();
console.log("RpcTest: parcel after write fd containFd result is : " + containFD); console.log("RpcTest: parcel after write fd containFd result is : " + containFD);
...@@ -5244,11 +5256,11 @@ writeFileDescriptor(fd: number): boolean ...@@ -5244,11 +5256,11 @@ writeFileDescriptor(fd: number): boolean
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let parcel = new rpc.MessageParcel(); let parcel = new rpc.MessageParcel();
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeResult = parcel.writeFileDescriptor(fd); let writeResult = parcel.writeFileDescriptor(file.fd);
console.log("RpcTest: parcel writeFd result is : " + writeResult); console.log("RpcTest: parcel writeFd result is : " + writeResult);
``` ```
...@@ -5269,11 +5281,11 @@ readFileDescriptor(): number ...@@ -5269,11 +5281,11 @@ readFileDescriptor(): number
**示例:** **示例:**
```ts ```ts
import fileio from '@ohos.fileio'; import fs from '@ohos.file.fs';
let parcel = new rpc.MessageParcel(); let parcel = new rpc.MessageParcel();
let filePath = "path/to/file"; let filePath = "path/to/file";
let fd = fileio.openSync(filePath, 0o2| 0o100, 0o666); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeResult = parcel.writeFileDescriptor(fd); let writeResult = parcel.writeFileDescriptor(file.fd);
let readFD = parcel.readFileDescriptor(); let readFD = parcel.readFileDescriptor();
console.log("RpcTest: parcel read fd is : " + readFD); console.log("RpcTest: parcel read fd is : " + readFD);
``` ```
...@@ -5438,6 +5450,7 @@ marshalling(dataOut: MessageSequence): boolean ...@@ -5438,6 +5450,7 @@ marshalling(dataOut: MessageSequence): boolean
| 类型 | 说明 | | 类型 | 说明 |
| ------- | ----------------------------------------- | | ------- | ----------------------------------------- |
| boolean | true:封送成功,false:封送失败。 | boolean | true:封送成功,false:封送失败。
**示例:** **示例:**
```ts ```ts
...@@ -5543,6 +5556,7 @@ marshalling(dataOut: MessageParcel): boolean ...@@ -5543,6 +5556,7 @@ marshalling(dataOut: MessageParcel): boolean
| 类型 | 说明 | | 类型 | 说明 |
| ------- | ----------------------------------------- | | ------- | ----------------------------------------- |
| boolean | true:封送成功,false:封送失败。 | boolean | true:封送成功,false:封送失败。
**示例:** **示例:**
```ts ```ts
...@@ -5649,37 +5663,43 @@ asObject(): IRemoteObject ...@@ -5649,37 +5663,43 @@ asObject(): IRemoteObject
return this; return this;
} }
} }
let remoteObject = new TestAbility().asObject(); let remoteObject = new TestAbility("testObject").asObject();
``` ```
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function (elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function (elementName) { onDisconnect: function(elementName) {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function () { onFailed: function() {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
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 ```ts
class TestProxy { class TestProxy {
remote: rpc.RemoteObject; remote: rpc.RemoteObject;
...@@ -6058,7 +6078,7 @@ isObjectDead(): boolean ...@@ -6058,7 +6078,7 @@ isObjectDead(): boolean
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.IPC.Core。 **系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.IPC.Core。
| 名称 | 默认值 | 说明 | | 名称 | 值 | 说明 |
| --------------------- | ----------------------- | --------------------------------- | | --------------------- | ----------------------- | --------------------------------- |
| PING_TRANSACTION | 1599098439 (0x5f504e47) | 内部指令码,用于测试IPC服务正常。 | | PING_TRANSACTION | 1599098439 (0x5f504e47) | 内部指令码,用于测试IPC服务正常。 |
| DUMP_TRANSACTION | 1598311760 (0x5f444d50) | 内部指令码,获取Binder内部状态。 | | DUMP_TRANSACTION | 1598311760 (0x5f444d50) | 内部指令码,获取Binder内部状态。 |
...@@ -6093,10 +6113,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6093,10 +6113,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6112,13 +6134,17 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6112,13 +6134,17 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
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 ```ts
let option = new rpc.MessageOption(); let option = new rpc.MessageOption();
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
...@@ -6163,10 +6189,12 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6163,10 +6189,12 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6182,11 +6210,15 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6182,11 +6210,15 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
```ts ```ts
...@@ -6241,10 +6273,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6241,10 +6273,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6260,9 +6294,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6260,9 +6294,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...@@ -6311,11 +6349,13 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6311,11 +6349,13 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
| callback | AsyncCallback&lt;RequestResult&gt; | 是 | 接收发送结果的回调。 | | callback | AsyncCallback&lt;RequestResult&gt; | 是 | 接收发送结果的回调。 |
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6331,7 +6371,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6331,7 +6371,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
function sendRequestCallback(result) { function sendRequestCallback(result) {
if (result.errCode === 0) { if (result.errCode === 0) {
...@@ -6346,7 +6386,11 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6346,7 +6386,11 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
result.data.reclaim(); result.data.reclaim();
result.reply.reclaim(); result.reply.reclaim();
} }
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...@@ -6358,7 +6402,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6358,7 +6402,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
data.writeInt(1); data.writeInt(1);
data.writeString("hello"); data.writeString("hello");
try { try {
proxy.sendRequest(1, data, reply, option, sendRequestCallback); proxy.sendMessageRequest(1, data, reply, option, sendRequestCallback);
} catch(error) { } catch(error) {
console.info("rpc send sequence request fail, errorCode " + error.code); console.info("rpc send sequence request fail, errorCode " + error.code);
console.info("rpc send sequence request fail, errorMessage " + error.message); console.info("rpc send sequence request fail, errorMessage " + error.message);
...@@ -6387,10 +6431,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6387,10 +6431,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6406,9 +6452,9 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6406,9 +6452,9 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
function sendRequestCallback(result) { function sendRequestCallback(result) {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendRequest got result"); console.log("sendRequest got result");
result.reply.readException(); result.reply.readException();
...@@ -6421,7 +6467,11 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6421,7 +6467,11 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
result.data.reclaim(); result.data.reclaim();
result.reply.reclaim(); result.reply.reclaim();
} }
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...@@ -6465,17 +6515,19 @@ getLocalInterface(interface: string): IRemoteBroker ...@@ -6465,17 +6515,19 @@ getLocalInterface(interface: string): IRemoteBroker
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function (elementName) { onDisconnect: function(elementName) {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: function() {
...@@ -6483,10 +6535,14 @@ getLocalInterface(interface: string): IRemoteBroker ...@@ -6483,10 +6535,14 @@ getLocalInterface(interface: string): IRemoteBroker
} }
}; };
let want = { let want = {
"bundleName":"com.ohos.server", "bundleName": "com.ohos.server",
"abilityName":"com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getLocalInterface接口方法查询接口对象 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getLocalInterface接口方法查询接口对象
...@@ -6525,17 +6581,19 @@ queryLocalInterface(interface: string): IRemoteBroker ...@@ -6525,17 +6581,19 @@ queryLocalInterface(interface: string): IRemoteBroker
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function (elementName) { onDisconnect: function(elementName) {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: function() {
...@@ -6543,12 +6601,16 @@ queryLocalInterface(interface: string): IRemoteBroker ...@@ -6543,12 +6601,16 @@ queryLocalInterface(interface: string): IRemoteBroker
} }
}; };
let want = { let want = {
"bundleName":"com.ohos.server", "bundleName": "com.ohos.server",
"abilityName":"com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的queryLocalInterface接口获取接口对象 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的queryLocalInterface接口获取接口对象
```ts ```ts
...@@ -6576,15 +6638,17 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void ...@@ -6576,15 +6638,17 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
以下错误码的详细介绍请参见[ohos.rpc错误码](../errorcodes/errorcode-rpc.md) 以下错误码的详细介绍请参见[ohos.rpc错误码](../errorcodes/errorcode-rpc.md)
| 错误码ID | 错误信息 | | 错误码ID | 错误信息 |
| ------- | -------- | | -------- | -------- |
| 1900008 | proxy or remote object is invalid | | 1900008 | proxy or remote object is invalid |
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6600,13 +6664,17 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void ...@@ -6600,13 +6664,17 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的registerDeathRecipient接口注册死亡回调 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的registerDeathRecipient接口注册死亡回调
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient {
onRemoteDied() { onRemoteDied() {
...@@ -6647,10 +6715,12 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6647,10 +6715,12 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6666,11 +6736,15 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6666,11 +6736,15 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的addDeathRecippient接口方法新增死亡回调 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的addDeathRecippient接口方法新增死亡回调
```ts ```ts
...@@ -6685,7 +6759,7 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6685,7 +6759,7 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean
### unregisterDeathRecipient<sup>9+</sup> ### 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 ...@@ -6708,10 +6782,12 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): boolean
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6727,12 +6803,16 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6727,12 +6803,16 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): boolean
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
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 ```ts
class MyDeathRecipient { class MyDeathRecipient {
...@@ -6775,10 +6855,12 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6775,10 +6855,12 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6794,11 +6876,15 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6794,11 +6876,15 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的removeDeathRecipient接口方法去注册死亡回调 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的removeDeathRecipient接口方法去注册死亡回调
```ts ```ts
...@@ -6837,10 +6923,12 @@ getDescriptor(): string ...@@ -6837,10 +6923,12 @@ getDescriptor(): string
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6856,9 +6944,13 @@ getDescriptor(): string ...@@ -6856,9 +6944,13 @@ getDescriptor(): string
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getDescriptor接口方法获取对象的接口描述符 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getDescriptor接口方法获取对象的接口描述符
...@@ -6890,10 +6982,12 @@ getInterfaceDescriptor(): string ...@@ -6890,10 +6982,12 @@ getInterfaceDescriptor(): string
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6909,11 +7003,15 @@ getInterfaceDescriptor(): string ...@@ -6909,11 +7003,15 @@ getInterfaceDescriptor(): string
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
```
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getInterfaceDescriptor接口方法查询当前代理对象接口的描述符 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getInterfaceDescriptor接口方法查询当前代理对象接口的描述符
```ts ```ts
...@@ -6937,10 +7035,12 @@ isObjectDead(): boolean ...@@ -6937,10 +7035,12 @@ isObjectDead(): boolean
**示例:** **示例:**
获取服务 Stage模型的应用在获取服务前需要先获取context,具体方法可参考[获取context](#获取context)
```ts ```ts
import FA from "@ohos.ability.featureAbility"; // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let proxy; let proxy;
let connect = { let connect = {
onConnect: function(elementName, remoteProxy) { onConnect: function(elementName, remoteProxy) {
...@@ -6956,10 +7056,14 @@ isObjectDead(): boolean ...@@ -6956,10 +7056,14 @@ isObjectDead(): boolean
}; };
let want = { let want = {
"bundleName": "com.ohos.server", "bundleName": "com.ohos.server",
"abilityName": "com.ohos.server.MainAbility", "abilityName": "com.ohos.server.EntryAbility",
}; };
FA.connectAbility(want, connect);
``` // FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的isObjectDead接口方法判断当前对象是否已经死亡 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的isObjectDead接口方法判断当前对象是否已经死亡
...@@ -6974,7 +7078,7 @@ isObjectDead(): boolean ...@@ -6974,7 +7078,7 @@ isObjectDead(): boolean
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.IPC.Core。 **系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.IPC.Core。
| 名称 | 默认值 | 说明 | | 名称 | 值 | 说明 |
| ------------- | ---- | ----------------------------------------------------------- | | ------------- | ---- | ----------------------------------------------------------- |
| TF_SYNC | 0 | 同步调用标识。 | | TF_SYNC | 0 | 同步调用标识。 |
| TF_ASYNC | 1 | 异步调用标识。 | | TF_ASYNC | 1 | 异步调用标识。 |
...@@ -6992,9 +7096,9 @@ MessageOption构造函数。 ...@@ -6992,9 +7096,9 @@ MessageOption构造函数。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | -------------------------------------- | | ------ | ------- | ---- | -------------------------------------- |
| syncFlags | number | 否 | 同步调用或异步调用标志。默认同步调用。 | | async | boolean | 否 | 同步调用或异步调用标志。默认同步调用。 |
**示例:** **示例:**
...@@ -7098,7 +7202,7 @@ getFlags(): number ...@@ -7098,7 +7202,7 @@ getFlags(): number
console.info("error " + error); console.info("error " + error);
} }
``` ```
### setFlags ### setFlags
setFlags(flags: number): void setFlags(flags: number): void
...@@ -7269,11 +7373,11 @@ static getCallingTokenId(): number; ...@@ -7269,11 +7373,11 @@ static getCallingTokenId(): number;
**系统能力**:SystemCapability.Communication.IPC.Core **系统能力**:SystemCapability.Communication.IPC.Core
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| ------ | --------------------- | | ------ | --------------------- |
| number | 返回调用者的TokenId。 | | number | 返回调用者的TokenId。 |
**示例:** **示例:**
```ts ```ts
...@@ -7720,9 +7824,9 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -7720,9 +7824,9 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| ---------------------------- | --------------------------------------------- | | ---------------------------- | ----------------------------------------- |
| Promise&lt;RequestResult&gt; | 返回一个期约,兑现值是sendRequestResult实例。 | | Promise&lt;RequestResult&gt; | 返回一个期约,兑现值是RequestResult实例。 |
**示例:** **示例:**
...@@ -8259,13 +8363,13 @@ getDescriptor(): string ...@@ -8259,13 +8363,13 @@ getDescriptor(): string
} }
} }
let testRemoteObject = new TestRemoteObject("testObject"); let testRemoteObject = new TestRemoteObject("testObject");
console.log("RpcServer: descriptor is: " + descriptor);
try { try {
let descriptor = testRemoteObject.getDescriptor(); let descriptor = testRemoteObject.getDescriptor();
} catch(error) { } catch(error) {
console.info("rpc get local interface fail, errorCode " + error.code); console.info("rpc get local interface fail, errorCode " + error.code);
console.info("rpc get local interface fail, errorMessage " + error.message); console.info("rpc get local interface fail, errorMessage " + error.message);
} }
console.log("RpcServer: descriptor is: " + descriptor);
``` ```
### getInterfaceDescriptor<sup>(deprecated)</sup> ### getInterfaceDescriptor<sup>(deprecated)</sup>
...@@ -8340,8 +8444,8 @@ modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void ...@@ -8340,8 +8444,8 @@ modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
try { try {
this.modifyLocalInterface(this, descriptor); this.modifyLocalInterface(this, descriptor);
} catch(error) { } catch(error) {
console.info(rpc attach local interface fail, errorCode " + error.code); 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, errorMessage " + error.message);
} }
} }
registerDeathRecipient(recipient: MyDeathRecipient, flags: number) { registerDeathRecipient(recipient: MyDeathRecipient, flags: number) {
...@@ -8414,7 +8518,7 @@ attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void ...@@ -8414,7 +8518,7 @@ attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
映射内存保护类型: 映射内存保护类型:
| 名称 | 默认值 | 说明 | | 名称 | 值 | 说明 |
| ---------- | --- | ------------------ | | ---------- | --- | ------------------ |
| PROT_EXEC | 4 | 映射的内存可执行 | | PROT_EXEC | 4 | 映射的内存可执行 |
| PROT_NONE | 0 | 映射的内存不可访问 | | PROT_NONE | 0 | 映射的内存不可访问 |
...@@ -8990,4 +9094,38 @@ readFromAshmem(size: number, offset: number): number[] ...@@ -8990,4 +9094,38 @@ readFromAshmem(size: number, offset: number): number[]
console.log("RpcTest: write to Ashmem result is : " + writeResult); console.log("RpcTest: write to Ashmem result is : " + writeResult);
let readResult = ashmem.readFromAshmem(5, 0); let readResult = ashmem.readFromAshmem(5, 0);
console.log("RpcTest: read to Ashmem result is : " + readResult); 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.
先完成此消息的编辑!
想要评论请 注册