You need to sign in or sign up before continuing.
提交 61413a3b 编写于 作者: L l30043718

Description:ArkTS rectification

Feature or Bugfix:ArkTS rectification
Binary Source: No
Signed-off-by: NLixiaoying25 <lixiaoying25@huawei.com>
上级 96826c76
...@@ -180,7 +180,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -180,7 +180,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
1. 添加依赖 1. 添加依赖
```ts ```ts
import rpc from "@ohos.rpc"; import rpc from '@ohos.rpc';
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import featureAbility from "@ohos.ability.featureAbility"; // import featureAbility from "@ohos.ability.featureAbility";
``` ```
...@@ -188,17 +188,20 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -188,17 +188,20 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
Stage模型需要获取context Stage模型需要获取context
```ts ```ts
import Ability from "@ohos.app.ability.UIAbility"; import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import window from '@ohos.window';
export default class MainAbility extends Ability { export default class MainAbility extends UIAbility {
onCreate(want, launchParam) { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
console.log("[Demo] MainAbility onCreate"); console.log("[Demo] MainAbility onCreate");
globalThis.context = this.context; let context = this.context;
} }
onDestroy() { onDestroy() {
console.log("[Demo] MainAbility onDestroy"); console.log("[Demo] MainAbility onDestroy");
} }
onWindowStageCreate(windowStage) { onWindowStageCreate(windowStage: window.WindowStage) {
// Main window is created, set main page for this ability // Main window is created, set main page for this ability
console.log("[Demo] MainAbility onWindowStageCreate"); console.log("[Demo] MainAbility onWindowStageCreate");
} }
...@@ -222,53 +225,62 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -222,53 +225,62 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
首先,构造变量want,指定要绑定的Ability所在应用的包名、组件名,如果是跨设备的场景,还需要绑定目标设备NetworkId(组网场景下对应设备的标识符,可以使用deviceManager获取目标设备的NetworkId);然后,构造变量connect,指定绑定成功、绑定失败、断开连接时的回调函数;最后,FA模型使用featureAbility提供的接口绑定Ability,Stage模型通过context获取服务后用提供的接口绑定Ability。 首先,构造变量want,指定要绑定的Ability所在应用的包名、组件名,如果是跨设备的场景,还需要绑定目标设备NetworkId(组网场景下对应设备的标识符,可以使用deviceManager获取目标设备的NetworkId);然后,构造变量connect,指定绑定成功、绑定失败、断开连接时的回调函数;最后,FA模型使用featureAbility提供的接口绑定Ability,Stage模型通过context获取服务后用提供的接口绑定Ability。
```ts ```ts
import rpc from "@ohos.rpc";
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import featureAbility from "@ohos.ability.featureAbility"; // import featureAbility from "@ohos.ability.featureAbility";
import rpc from '@ohos.rpc';
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import deviceManager from '@ohos.distributedHardware.deviceManager';
let proxy = null; let proxy: rpc.RemoteProxy;
let connectId = null; let connectId: number;
// 单个设备绑定Ability // 单个设备绑定Ability
let want = { let want: Want = {
// 包名和组件名写实际的值 // 包名和组件名写实际的值
"bundleName": "ohos.rpc.test.server", bundleName: "ohos.rpc.test.server",
"abilityName": "ohos.rpc.test.server.ServiceAbility", abilityName: "ohos.rpc.test.server.ServiceAbility",
}; };
let connect = { let connect: common.ConnectOptions = {
onConnect:function(elementName, remote) { onConnect: (elementName, remote: rpc.RemoteProxy) => {
proxy = remote; proxy = remote;
}, },
onDisconnect:function(elementName) { onDisconnect: (elementName) => {
}, },
onFailed:function() { onFailed: () => {
proxy = null; proxy;
} }
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// connectId = featureAbility.connectAbility(want, connect); // connectId = featureAbility.connectAbility(want, connect);
connectId = globalThis.context.connectServiceExtensionAbility(want,connect); connectId = this.context.connectServiceExtensionAbility(want,connect);
// 如果是跨设备绑定,可以使用deviceManager获取目标设备NetworkId // 跨设备绑定
import deviceManager from '@ohos.distributedHardware.deviceManager';
function deviceManagerCallback(deviceManager) {
let deviceList = deviceManager.getTrustedDeviceListSync();
let networkId = deviceList[0].networkId;
let want = {
"bundleName": "ohos.rpc.test.server",
"abilityName": "ohos.rpc.test.service.ServiceAbility",
"networkId": networkId,
"flags": 256
};
// 建立连接后返回的Id需要保存下来,在断开连接时需要作为参数传入
// FA模型使用此方法连接服务
// connectId = featureAbility.connectAbility(want, connect);
connectId = globalThis.context.connectServiceExtensionAbility(want,connect);
}
// 第一个参数是本应用的包名,第二个参数是接收deviceManager的回调函数 // 第一个参数是本应用的包名,第二个参数是接收deviceManager的回调函数
deviceManager.createDeviceManager("ohos.rpc.test", deviceManagerCallback); deviceManager.createDeviceManager("ohos.rpc.test", (err: Error, data: deviceManager.DeviceManager) => {
if (err) {
console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
return;
}
console.info("createDeviceManager success");
let dmInstance = data;
});
// 使用deviceManager获取目标设备NetworkId
let deviceList: Array<deviceManager.DeviceInfo> = dmInstance.getTrustedDeviceListSync();
let networkId: string = deviceList[0].networkId;
let want: Want = {
bundleName: "ohos.rpc.test.server",
abilityName: "ohos.rpc.test.service.ServiceAbility",
deviceId: networkId,
flags: 256
};
// 建立连接后返回的Id需要保存下来,在断开连接时需要作为参数传入
// FA模型使用此方法连接服务
// connectId = featureAbility.connectAbility(want, connect);
connectId = this.context.connectServiceExtensionAbility(want,connect);
``` ```
...@@ -278,14 +290,14 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -278,14 +290,14 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
```ts ```ts
onConnect(want: Want) { onConnect(want: Want) {
var robj:rpc.RemoteObject = new Stub("rpcTestAbility"); const robj: rpc.RemoteObject = new Stub("rpcTestAbility");
return robj; return robj;
} }
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
// 根据code处理客户端的请求 // 根据code处理客户端的请求
return true; return true;
} }
...@@ -297,20 +309,21 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -297,20 +309,21 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
客户端在onConnect回调里接收到代理对象,调用sendRequest方法发起请求,在期约(JavaScript期约:用于表示一个异步操作的最终完成或失败及其结果值)或者回调函数里接收结果。 客户端在onConnect回调里接收到代理对象,调用sendRequest方法发起请求,在期约(JavaScript期约:用于表示一个异步操作的最终完成或失败及其结果值)或者回调函数里接收结果。
```ts ```ts
import rpc from '@ohos.rpc';
// 使用期约 // 使用期约
let option = new rpc.MessageOption(); let option = new rpc.MessageOption();
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let reply = rpc.MessageParcel.create(); let reply = rpc.MessageParcel.create();
// 往data里写入参数 // 往data里写入参数
proxy.sendRequest(1, data, reply, option) proxy.sendRequest(1, data, reply, option)
.then(function(result) { .then((result: rpc.SendRequestResult) => {
if (result.errCode != 0) { if (result.errCode != 0) {
console.error("send request failed, errCode: " + result.errCode); console.error("send request failed, errCode: " + result.errCode);
return; return;
} }
// 从result.reply里读取结果 // 从result.reply里读取结果
}) })
.catch(function(e) { .catch((e: Error) => {
console.error("send request got exception: " + e); console.error("send request got exception: " + e);
}) })
.finally(() => { .finally(() => {
...@@ -319,7 +332,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -319,7 +332,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
}) })
// 使用回调函数 // 使用回调函数
function sendRequestCallback(result) { function sendRequestCallback(result: rpc.SendRequestResult) {
try { try {
if (result.errCode != 0) { if (result.errCode != 0) {
console.error("send request failed, errCode: " + result.errCode); console.error("send request failed, errCode: " + result.errCode);
...@@ -352,7 +365,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信, ...@@ -352,7 +365,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
// FA模型使用此方法断开连接 // FA模型使用此方法断开连接
// featureAbility.disconnectAbility(connectId, disconnectCallback); // featureAbility.disconnectAbility(connectId, disconnectCallback);
globalThis.context.disconnectServiceExtensionAbility(connectId); this.context.disconnectServiceExtensionAbility(connectId);
``` ```
## 相关实例 ## 相关实例
......
...@@ -93,17 +93,21 @@ result = object->RemoveDeathRecipient(deathRecipient); // 移除消亡通知 ...@@ -93,17 +93,21 @@ result = object->RemoveDeathRecipient(deathRecipient); // 移除消亡通知
Stage模型在连接服务前需要先获取context Stage模型在连接服务前需要先获取context
```ts ```ts
import Ability from "@ohos.app.ability.UIAbility"; import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import window from '@ohos.window';
export default class MainAbility extends Ability {
onCreate(want, launchParam) { export default class MainAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
console.log("[Demo] MainAbility onCreate"); console.log("[Demo] MainAbility onCreate");
globalThis.context = this.context; let context = this.context;
} }
onDestroy() { onDestroy() {
console.log("[Demo] MainAbility onDestroy"); console.log("[Demo] MainAbility onDestroy");
} }
onWindowStageCreate(windowStage) { onWindowStageCreate(windowStage: window.WindowStage) {
// Main window is created, set main page for this ability // Main window is created, set main page for this ability
console.log("[Demo] MainAbility onWindowStageCreate"); console.log("[Demo] MainAbility onWindowStageCreate");
} }
...@@ -127,36 +131,42 @@ export default class MainAbility extends Ability { ...@@ -127,36 +131,42 @@ export default class MainAbility extends Ability {
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型通过此方法连接服务 // FA模型通过此方法连接服务
// FA.connectAbility(want, connect); // FA.connectAbility(want, connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的unregisterDeathRecipient接口方法注销死亡回调
class MyDeathRecipient { ```ts
class MyDeathRecipient implements rpc.DeathRecipient{
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
let deathRecipient = new MyDeathRecipient(); let deathRecipient = new MyDeathRecipient();
proxy.registerDeathRecippient(deathRecipient, 0); proxy.registerDeathRecipient(deathRecipient, 0);
proxy.unregisterDeathRecipient(deathRecipient, 0); proxy.unregisterDeathRecipient(deathRecipient, 0);
``` ```
......
...@@ -104,8 +104,10 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): void ...@@ -104,8 +104,10 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
} }
...@@ -114,8 +116,9 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): void ...@@ -114,8 +116,9 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): void
try { try {
data.writeRemoteObject(testRemoteObject); data.writeRemoteObject(testRemoteObject);
} catch(error) { } catch(error) {
console.info("Rpc write remote object fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc write remote object fail, errorMessage " + error.message); console.info("Rpc write remote object fail, errorCode " + e.code);
console.info("Rpc write remote object fail, errorMessage " + e.message);
} }
``` ```
...@@ -145,8 +148,10 @@ readRemoteObject(): IRemoteObject ...@@ -145,8 +148,10 @@ readRemoteObject(): IRemoteObject
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
} }
...@@ -156,8 +161,9 @@ readRemoteObject(): IRemoteObject ...@@ -156,8 +161,9 @@ readRemoteObject(): IRemoteObject
data.writeRemoteObject(testRemoteObject); data.writeRemoteObject(testRemoteObject);
let proxy = data.readRemoteObject(); let proxy = data.readRemoteObject();
} catch(error) { } catch(error) {
console.info("Rpc write remote object fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc write remote object fail, errorMessage " + error.message); console.info("Rpc write remote object fail, errorCode " + e.code);
console.info("Rpc write remote object fail, errorMessage " + e.message);
} }
``` ```
...@@ -186,12 +192,15 @@ writeInterfaceToken(token: string): void ...@@ -186,12 +192,15 @@ writeInterfaceToken(token: string): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeInterfaceToken("aaa"); data.writeInterfaceToken("aaa");
} catch(error) { } catch(error) {
console.info("rpc write interface fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write interface fail, errorMessage " + error.message); console.info("rpc write interface fail, errorCode " + e.code);
console.info("rpc write interface fail, errorMessage " + e.message);
} }
``` ```
...@@ -220,14 +229,17 @@ readInterfaceToken(): string ...@@ -220,14 +229,17 @@ readInterfaceToken(): string
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
try { try {
let interfaceToken = data.readInterfaceToken(); let interfaceToken = data.readInterfaceToken();
console.log("RpcServer: interfaceToken is " + interfaceToken); console.log("RpcServer: interfaceToken is " + interfaceToken);
} catch(error) { } catch(error) {
console.info("RpcServer: read interfaceToken failed, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("RpcServer: read interfaceToken failed, errorMessage " + error.message); console.info("RpcServer: read interfaceToken failed, errorCode " + e.code);
console.info("RpcServer: read interfaceToken failed, errorMessage " + e.message);
} }
return true; return true;
} }
...@@ -295,13 +307,16 @@ setSize(size: number): void ...@@ -295,13 +307,16 @@ setSize(size: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.setSize(16); data.setSize(16);
console.log("RpcClient: setSize is " + data.getSize()); console.log("RpcClient: setSize is " + data.getSize());
} catch(error) { } catch(error) {
console.info("rpc set size of MessageSequence fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc set size of MessageSequence fail, errorMessage " + error.message); console.info("rpc set size of MessageSequence fail, errorCode " + e.code);
console.info("rpc set size of MessageSequence fail, errorMessage " + e.message);
} }
``` ```
...@@ -330,13 +345,16 @@ setCapacity(size: number): void ...@@ -330,13 +345,16 @@ setCapacity(size: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.setCapacity(100); data.setCapacity(100);
console.log("RpcClient: setCapacity is " + data.getCapacity()); console.log("RpcClient: setCapacity is " + data.getCapacity());
} catch(error) { } catch(error) {
console.info("rpc memory alloc fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc memory alloc fail, errorMessage " + error.message); console.info("rpc memory alloc fail, errorCode " + e.code);
console.info("rpc memory alloc fail, errorMessage " + e.message);
} }
``` ```
...@@ -358,7 +376,7 @@ getWritableBytes(): number ...@@ -358,7 +376,7 @@ getWritableBytes(): number
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
let getWritableBytes = data.getWritableBytes(); let getWritableBytes = data.getWritableBytes();
console.log("RpcServer: getWritableBytes is " + getWritableBytes); console.log("RpcServer: getWritableBytes is " + getWritableBytes);
return true; return true;
...@@ -384,7 +402,7 @@ getReadableBytes(): number ...@@ -384,7 +402,7 @@ getReadableBytes(): number
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
let result = data.getReadableBytes(); let result = data.getReadableBytes();
console.log("RpcServer: getReadableBytes is " + result); console.log("RpcServer: getReadableBytes is " + result);
return true; return true;
...@@ -454,6 +472,8 @@ rewindRead(pos: number): void ...@@ -454,6 +472,8 @@ rewindRead(pos: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
data.writeInt(12); data.writeInt(12);
data.writeString("sequence"); data.writeString("sequence");
...@@ -462,8 +482,9 @@ rewindRead(pos: number): void ...@@ -462,8 +482,9 @@ rewindRead(pos: number): void
try { try {
data.rewindRead(0); data.rewindRead(0);
} catch(error) { } catch(error) {
console.info("rpc rewind read data fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc rewind read data fail, errorMessage " + error.message); console.info("rpc rewind read data fail, errorCode " + e.code);
console.info("rpc rewind read data fail, errorMessage " + e.message);
} }
let number2 = data.readInt(); let number2 = data.readInt();
console.log("RpcClient: rewindRead is " + number2); console.log("RpcClient: rewindRead is " + number2);
...@@ -486,13 +507,16 @@ rewindWrite(pos: number): void ...@@ -486,13 +507,16 @@ rewindWrite(pos: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
data.writeInt(4); data.writeInt(4);
try { try {
data.rewindWrite(0); data.rewindWrite(0);
} catch(error) { } catch(error) {
console.info("rpc rewind read data fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc rewind read data fail, errorMessage " + error.message); console.info("rpc rewind read data fail, errorCode " + e.code);
console.info("rpc rewind read data fail, errorMessage " + e.message);
} }
data.writeInt(5); data.writeInt(5);
let number = data.readInt(); let number = data.readInt();
...@@ -524,12 +548,15 @@ writeByte(val: number): void ...@@ -524,12 +548,15 @@ writeByte(val: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeByte(2); data.writeByte(2);
} catch(error) { } catch(error) {
console.info("rpc write byte fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write byte fail, errorMessage" + error.message); console.info("rpc write byte fail, errorCode " + e.code);
console.info("rpc write byte fail, errorMessage" + e.message);
} }
``` ```
...@@ -558,19 +585,23 @@ readByte(): number ...@@ -558,19 +585,23 @@ readByte(): number
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeByte(2); data.writeByte(2);
} catch(error) { } catch(error) {
console.info("rpc write byte fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write byte fail, errorMessage" + error.message); console.info("rpc write byte fail, errorCode " + e.code);
console.info("rpc write byte fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readByte(); let ret = data.readByte();
console.log("RpcClient: readByte is: " + ret); console.log("RpcClient: readByte is: " + ret);
} catch(error) { } catch(error) {
console.info("rpc write byte fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write byte fail, errorMessage" + error.message); console.info("rpc write byte fail, errorCode " + e.code);
console.info("rpc write byte fail, errorMessage" + e.message);
} }
``` ```
...@@ -599,12 +630,15 @@ writeShort(val: number): void ...@@ -599,12 +630,15 @@ writeShort(val: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeShort(8); data.writeShort(8);
} catch(error) { } catch(error) {
console.info("rpc write short fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write short fail, errorMessage" + error.message); console.info("rpc write short fail, errorCode " + e.code);
console.info("rpc write short fail, errorMessage" + e.message);
} }
``` ```
...@@ -633,19 +667,23 @@ readShort(): number ...@@ -633,19 +667,23 @@ readShort(): number
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeShort(8); data.writeShort(8);
} catch(error) { } catch(error) {
console.info("rpc write short fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write short fail, errorMessage" + error.message); console.info("rpc write short fail, errorCode " + e.code);
console.info("rpc write short fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readShort(); let ret = data.readShort();
console.log("RpcClient: readByte is: " + ret); console.log("RpcClient: readByte is: " + ret);
} catch(error) { } catch(error) {
console.info("rpc read short fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read short fail, errorMessage" + error.message); console.info("rpc read short fail, errorCode " + e.code);
console.info("rpc read short fail, errorMessage" + e.message);
} }
``` ```
...@@ -674,12 +712,15 @@ writeInt(val: number): void ...@@ -674,12 +712,15 @@ writeInt(val: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeInt(10); data.writeInt(10);
} catch(error) { } catch(error) {
console.info("rpc write int fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write int fail, errorMessage" + error.message); console.info("rpc write int fail, errorCode " + e.code);
console.info("rpc write int fail, errorMessage" + e.message);
} }
``` ```
...@@ -708,19 +749,23 @@ readInt(): number ...@@ -708,19 +749,23 @@ readInt(): number
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeInt(10); data.writeInt(10);
} catch(error) { } catch(error) {
console.info("rpc write int fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write int fail, errorMessage" + error.message); console.info("rpc write int fail, errorCode " + e.code);
console.info("rpc write int fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readInt(); let ret = data.readInt();
console.log("RpcClient: readInt is " + ret); console.log("RpcClient: readInt is " + ret);
} catch(error) { } catch(error) {
console.info("rpc read int fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read int fail, errorMessage" + error.message); console.info("rpc read int fail, errorCode " + e.code);
console.info("rpc read int fail, errorMessage" + e.message);
} }
``` ```
...@@ -749,12 +794,15 @@ writeLong(val: number): void ...@@ -749,12 +794,15 @@ writeLong(val: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeLong(10000); data.writeLong(10000);
} catch(error) { } catch(error) {
console.info("rpc write long fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write long fail, errorMessage" + error.message); console.info("rpc write long fail, errorCode " + e.code);
console.info("rpc write long fail, errorMessage" + e.message);
} }
``` ```
...@@ -783,19 +831,23 @@ readLong(): number ...@@ -783,19 +831,23 @@ readLong(): number
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeLong(10000); data.writeLong(10000);
} catch(error) { } catch(error) {
console.info("rpc write long fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write long fail, errorMessage" + error.message); console.info("rpc write long fail, errorCode " + e.code);
console.info("rpc write long fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readLong(); let ret = data.readLong();
console.log("RpcClient: readLong is " + ret); console.log("RpcClient: readLong is " + ret);
} catch(error) { } catch(error) {
console.info("rpc read long fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read long fail, errorMessage" + error.message); console.info("rpc read long fail, errorCode " + e.code);
console.info("rpc read long fail, errorMessage" + e.message);
} }
``` ```
...@@ -824,12 +876,15 @@ writeFloat(val: number): void ...@@ -824,12 +876,15 @@ writeFloat(val: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeFloat(1.2); data.writeFloat(1.2);
} catch(error) { } catch(error) {
console.info("rpc write float fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write float fail, errorMessage" + error.message); console.info("rpc write float fail, errorCode " + e.code);
console.info("rpc write float fail, errorMessage" + e.message);
} }
``` ```
...@@ -858,19 +913,23 @@ readFloat(): number ...@@ -858,19 +913,23 @@ readFloat(): number
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeFloat(1.2); data.writeFloat(1.2);
} catch(error) { } catch(error) {
console.info("rpc write float fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write float fail, errorMessage" + error.message); console.info("rpc write float fail, errorCode " + e.code);
console.info("rpc write float fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readFloat(); let ret = data.readFloat();
console.log("RpcClient: readFloat is " + ret); console.log("RpcClient: readFloat is " + ret);
} catch(error) { } catch(error) {
console.info("rpc read float fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read float fail, errorMessage" + error.message); console.info("rpc read float fail, errorCode " + e.code);
console.info("rpc read float fail, errorMessage" + e.message);
} }
``` ```
...@@ -899,12 +958,15 @@ writeDouble(val: number): void ...@@ -899,12 +958,15 @@ writeDouble(val: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeDouble(10.2); data.writeDouble(10.2);
} catch(error) { } catch(error) {
console.info("rpc read float fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read float fail, errorMessage" + error.message); console.info("rpc read float fail, errorCode " + e.code);
console.info("rpc read float fail, errorMessage" + e.message);
} }
``` ```
...@@ -933,19 +995,23 @@ readDouble(): number ...@@ -933,19 +995,23 @@ readDouble(): number
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeDouble(10.2); data.writeDouble(10.2);
} catch(error) { } catch(error) {
console.info("rpc write double fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write double fail, errorMessage" + error.message); console.info("rpc write double fail, errorCode " + e.code);
console.info("rpc write double fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readDouble(); let ret = data.readDouble();
console.log("RpcClient: readDouble is " + ret); console.log("RpcClient: readDouble is " + ret);
} catch(error) { } catch(error) {
console.info("rpc read double fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read double fail, errorMessage" + error.message); console.info("rpc read double fail, errorCode " + e.code);
console.info("rpc read double fail, errorMessage" + e.message);
} }
``` ```
...@@ -974,12 +1040,15 @@ writeBoolean(val: boolean): void ...@@ -974,12 +1040,15 @@ writeBoolean(val: boolean): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeBoolean(false); data.writeBoolean(false);
} catch(error) { } catch(error) {
console.info("rpc write boolean fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write boolean fail, errorMessage" + error.message); console.info("rpc write boolean fail, errorCode " + e.code);
console.info("rpc write boolean fail, errorMessage" + e.message);
} }
``` ```
...@@ -1008,19 +1077,23 @@ readBoolean(): boolean ...@@ -1008,19 +1077,23 @@ readBoolean(): boolean
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeBoolean(false); data.writeBoolean(false);
} catch(error) { } catch(error) {
console.info("rpc write boolean fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write boolean fail, errorMessage" + error.message); console.info("rpc write boolean fail, errorCode " + e.code);
console.info("rpc write boolean fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readBoolean(); let ret = data.readBoolean();
console.log("RpcClient: readBoolean is " + ret); console.log("RpcClient: readBoolean is " + ret);
} catch(error) { } catch(error) {
console.info("rpc read boolean fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read boolean fail, errorMessage" + error.message); console.info("rpc read boolean fail, errorCode " + e.code);
console.info("rpc read boolean fail, errorMessage" + e.message);
} }
``` ```
...@@ -1049,12 +1122,15 @@ writeChar(val: number): void ...@@ -1049,12 +1122,15 @@ writeChar(val: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeChar(97); data.writeChar(97);
} catch(error) { } catch(error) {
console.info("rpc write char fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write char fail, errorMessage" + error.message); console.info("rpc write char fail, errorCode " + e.code);
console.info("rpc write char fail, errorMessage" + e.message);
} }
``` ```
...@@ -1083,19 +1159,23 @@ readChar(): number ...@@ -1083,19 +1159,23 @@ readChar(): number
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeChar(97); data.writeChar(97);
} catch(error) { } catch(error) {
console.info("rpc write char fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write char fail, errorMessage" + error.message); console.info("rpc write char fail, errorCode " + e.code);
console.info("rpc write char fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readChar(); let ret = data.readChar();
console.log("RpcClient: readChar is " + ret); console.log("RpcClient: readChar is " + ret);
} catch(error) { } catch(error) {
console.info("rpc read char fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read char fail, errorMessage" + error.message); console.info("rpc read char fail, errorCode " + e.code);
console.info("rpc read char fail, errorMessage" + e.message);
} }
``` ```
...@@ -1124,12 +1204,15 @@ writeString(val: string): void ...@@ -1124,12 +1204,15 @@ writeString(val: string): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeString('abc'); data.writeString('abc');
} catch(error) { } catch(error) {
console.info("rpc write string fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write string fail, errorMessage" + error.message); console.info("rpc write string fail, errorCode " + e.code);
console.info("rpc write string fail, errorMessage" + e.message);
} }
``` ```
...@@ -1158,19 +1241,23 @@ readString(): string ...@@ -1158,19 +1241,23 @@ readString(): string
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeString('abc'); data.writeString('abc');
} catch(error) { } catch(error) {
console.info("rpc write string fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write string fail, errorMessage" + error.message); console.info("rpc write string fail, errorCode " + e.code);
console.info("rpc write string fail, errorMessage" + e.message);
} }
try { try {
let ret = data.readString(); let ret = data.readString();
console.log("RpcClient: readString is " + ret); console.log("RpcClient: readString is " + ret);
} catch(error) { } catch(error) {
console.info("rpc read string fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read string fail, errorMessage" + error.message); console.info("rpc read string fail, errorCode " + e.code);
console.info("rpc read string fail, errorMessage" + e.message);
} }
``` ```
...@@ -1199,31 +1286,34 @@ writeParcelable(val: Parcelable): void ...@@ -1199,31 +1286,34 @@ writeParcelable(val: Parcelable): void
**示例:** **示例:**
```ts ```ts
class MySequenceable { import { BussinessError } from '@ohos.base';
class MyParcelable implements rpc.Parcelable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor( num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageSequence) { marshalling(messageSequence: rpc.MessageSequence): boolean {
messageSequence.writeInt(this.num); messageSequence.writeInt(this.num);
messageSequence.writeString(this.str); messageSequence.writeString(this.str);
return true; return true;
} }
unmarshalling(messageSequence) { unmarshalling(messageSequence: rpc.MessageSequence): boolean {
this.num = messageSequence.readInt(); this.num = messageSequence.readInt();
this.str = messageSequence.readString(); this.str = messageSequence.readString();
return true; return true;
} }
} }
let parcelable = new MySequenceable(1, "aaa"); let parcelable = new MyParcelable(1, "aaa");
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeParcelable(parcelable); data.writeParcelable(parcelable);
} catch(error) { } catch(error) {
console.info("rpc write parcelable fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write parcelable fail, errorMessage" + error.message); console.info("rpc write parcelable fail, errorCode " + e.code);
console.info("rpc write parcelable fail, errorMessage" + e.message);
} }
``` ```
...@@ -1253,33 +1343,36 @@ readParcelable(dataIn: Parcelable): void ...@@ -1253,33 +1343,36 @@ readParcelable(dataIn: Parcelable): void
**示例:** **示例:**
```ts ```ts
class MySequenceable { import { BussinessError } from '@ohos.base';
class MyParcelable implements rpc.Parcelable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageSequence) { marshalling(messageSequence: rpc.MessageSequence): boolean {
messageSequence.writeInt(this.num); messageSequence.writeInt(this.num);
messageSequence.writeString(this.str); messageSequence.writeString(this.str);
return true; return true;
} }
unmarshalling(messageSequence) { unmarshalling(messageSequence: rpc.MessageSequence): boolean {
this.num = messageSequence.readInt(); this.num = messageSequence.readInt();
this.str = messageSequence.readString(); this.str = messageSequence.readString();
return true; return true;
} }
} }
let parcelable = new MySequenceable(1, "aaa"); let parcelable = new MyParcelable(1, "aaa");
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
data.writeParcelable(parcelable); data.writeParcelable(parcelable);
let ret = new MySequenceable(0, ""); let ret = new MyParcelable(0, "");
try { try {
data.readParcelable(ret); data.readParcelable(ret);
}catch(error) { }catch(error) {
console.info("rpc read parcelable fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read parcelable fail, errorMessage" + error.message); console.info("rpc read parcelable fail, errorCode " + e.code);
console.info("rpc read parcelable fail, errorMessage" + e.message);
} }
``` ```
...@@ -1308,13 +1401,16 @@ writeByteArray(byteArray: number[]): void ...@@ -1308,13 +1401,16 @@ writeByteArray(byteArray: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
let ByteArrayVar = [1, 2, 3, 4, 5]; let ByteArrayVar = [1, 2, 3, 4, 5];
try { try {
data.writeByteArray(ByteArrayVar); data.writeByteArray(ByteArrayVar);
} catch(error) { } catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write byteArray fail, errorMessage" + error.message); console.info("rpc write byteArray fail, errorCode " + e.code);
console.info("rpc write byteArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1343,20 +1439,24 @@ readByteArray(dataIn: number[]): void ...@@ -1343,20 +1439,24 @@ readByteArray(dataIn: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
let ByteArrayVar = [1, 2, 3, 4, 5]; let ByteArrayVar = [1, 2, 3, 4, 5];
try { try {
data.writeByteArray(ByteArrayVar); data.writeByteArray(ByteArrayVar);
} catch(error) { } catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write byteArray fail, errorMessage" + error.message); console.info("rpc write byteArray fail, errorCode " + e.code);
console.info("rpc write byteArray fail, errorMessage" + e.message);
} }
try { try {
let array = new Array(5); let array: Array<number> = new Array(5);
data.readByteArray(array); data.readByteArray(array);
} catch(error) { } catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write byteArray fail, errorMessage" + error.message); console.info("rpc write byteArray fail, errorCode " + e.code);
console.info("rpc write byteArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1385,20 +1485,24 @@ readByteArray(): number[] ...@@ -1385,20 +1485,24 @@ readByteArray(): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
let byteArrayVar = [1, 2, 3, 4, 5]; let byteArrayVar = [1, 2, 3, 4, 5];
try { try {
data.writeByteArray(byteArrayVar); data.writeByteArray(byteArrayVar);
} catch(error) { } catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write byteArray fail, errorMessage" + error.message); console.info("rpc write byteArray fail, errorCode " + e.code);
console.info("rpc write byteArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readByteArray(); let array = data.readByteArray();
console.log("RpcClient: readByteArray is " + array); console.log("RpcClient: readByteArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read byteArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read byteArray fail, errorMessage" + error.message); console.info("rpc read byteArray fail, errorCode " + e.code);
console.info("rpc read byteArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1427,12 +1531,15 @@ writeShortArray(shortArray: number[]): void ...@@ -1427,12 +1531,15 @@ writeShortArray(shortArray: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeShortArray([11, 12, 13]); data.writeShortArray([11, 12, 13]);
} catch(error) { } catch(error) {
console.info("rpc read byteArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read byteArray fail, errorMessage" + error.message); console.info("rpc read byteArray fail, errorCode " + e.code);
console.info("rpc read byteArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1461,19 +1568,23 @@ readShortArray(dataIn: number[]): void ...@@ -1461,19 +1568,23 @@ readShortArray(dataIn: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeShortArray([11, 12, 13]); data.writeShortArray([11, 12, 13]);
} catch(error) { } catch(error) {
console.info("rpc write shortArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write shortArray fail, errorMessage" + error.message); console.info("rpc write shortArray fail, errorCode " + e.code);
console.info("rpc write shortArray fail, errorMessage" + e.message);
} }
try { try {
let array = new Array(3); let array: Array<number> = new Array(3);
data.readShortArray(array); data.readShortArray(array);
} catch(error) { } catch(error) {
console.info("rpc read shortArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read shortArray fail, errorMessage" + error.message); console.info("rpc read shortArray fail, errorCode " + e.code);
console.info("rpc read shortArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1502,19 +1613,23 @@ readShortArray(): number[] ...@@ -1502,19 +1613,23 @@ readShortArray(): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeShortArray([11, 12, 13]); data.writeShortArray([11, 12, 13]);
} catch(error) { } catch(error) {
console.info("rpc write shortArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write shortArray fail, errorMessage" + error.message); console.info("rpc write shortArray fail, errorCode " + e.code);
console.info("rpc write shortArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readShortArray(); let array = data.readShortArray();
console.log("RpcClient: readShortArray is " + array); console.log("RpcClient: readShortArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read shortArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read shortArray fail, errorMessage" + error.message); console.info("rpc read shortArray fail, errorCode " + e.code);
console.info("rpc read shortArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1543,12 +1658,15 @@ writeIntArray(intArray: number[]): void ...@@ -1543,12 +1658,15 @@ writeIntArray(intArray: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeIntArray([100, 111, 112]); data.writeIntArray([100, 111, 112]);
} catch(error) { } catch(error) {
console.info("rpc write intArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write intArray fail, errorMessage" + error.message); console.info("rpc write intArray fail, errorCode " + e.code);
console.info("rpc write intArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1577,19 +1695,23 @@ readIntArray(dataIn: number[]): void ...@@ -1577,19 +1695,23 @@ readIntArray(dataIn: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeIntArray([100, 111, 112]); data.writeIntArray([100, 111, 112]);
} catch(error) { } catch(error) {
console.info("rpc write intArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write intArray fail, errorMessage" + error.message); console.info("rpc write intArray fail, errorCode " + e.code);
console.info("rpc write intArray fail, errorMessage" + e.message);
} }
let array = new Array(3); let array: Array<number> = new Array(3);
try { try {
data.readIntArray(array); data.readIntArray(array);
} catch(error) { } catch(error) {
console.info("rpc read intArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read intArray fail, errorMessage" + error.message); console.info("rpc read intArray fail, errorCode " + e.code);
console.info("rpc read intArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1618,19 +1740,23 @@ readIntArray(): number[] ...@@ -1618,19 +1740,23 @@ readIntArray(): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeIntArray([100, 111, 112]); data.writeIntArray([100, 111, 112]);
} catch(error) { } catch(error) {
console.info("rpc write intArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write intArray fail, errorMessage" + error.message); console.info("rpc write intArray fail, errorCode " + e.code);
console.info("rpc write intArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readIntArray(); let array = data.readIntArray();
console.log("RpcClient: readIntArray is " + array); console.log("RpcClient: readIntArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read intArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read intArray fail, errorMessage" + error.message); console.info("rpc read intArray fail, errorCode " + e.code);
console.info("rpc read intArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1659,12 +1785,15 @@ writeLongArray(longArray: number[]): void ...@@ -1659,12 +1785,15 @@ writeLongArray(longArray: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeLongArray([1111, 1112, 1113]); data.writeLongArray([1111, 1112, 1113]);
}catch(error){ }catch(error){
console.info("rpc write longArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write longArray fail, errorMessage" + error.message); console.info("rpc write longArray fail, errorCode " + e.code);
console.info("rpc write longArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1693,19 +1822,23 @@ readLongArray(dataIn: number[]): void ...@@ -1693,19 +1822,23 @@ readLongArray(dataIn: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeLongArray([1111, 1112, 1113]); data.writeLongArray([1111, 1112, 1113]);
} catch(error) { } catch(error) {
console.info("rpc write longArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write longArray fail, errorMessage" + error.message); console.info("rpc write longArray fail, errorCode " + e.code);
console.info("rpc write longArray fail, errorMessage" + e.message);
} }
let array = new Array(3); let array: Array<number> = new Array(3);
try { try {
data.readLongArray(array); data.readLongArray(array);
} catch(error) { } catch(error) {
console.info("rpc read longArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read longArray fail, errorMessage" + error.message); console.info("rpc read longArray fail, errorCode " + e.code);
console.info("rpc read longArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1734,19 +1867,23 @@ readLongArray(): number[] ...@@ -1734,19 +1867,23 @@ readLongArray(): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeLongArray([1111, 1112, 1113]); data.writeLongArray([1111, 1112, 1113]);
} catch(error) { } catch(error) {
console.info("rpc write longArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write longArray fail, errorMessage" + error.message); console.info("rpc write longArray fail, errorCode " + e.code);
console.info("rpc write longArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readLongArray(); let array = data.readLongArray();
console.log("RpcClient: readLongArray is " + array); console.log("RpcClient: readLongArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read longArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read longArray fail, errorMessage" + error.message); console.info("rpc read longArray fail, errorCode " + e.code);
console.info("rpc read longArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1775,12 +1912,15 @@ writeFloatArray(floatArray: number[]): void ...@@ -1775,12 +1912,15 @@ writeFloatArray(floatArray: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeFloatArray([1.2, 1.3, 1.4]); data.writeFloatArray([1.2, 1.3, 1.4]);
} catch(error) { } catch(error) {
console.info("rpc write floatArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write floatArray fail, errorMessage" + error.message); console.info("rpc write floatArray fail, errorCode " + e.code);
console.info("rpc write floatArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1809,19 +1949,23 @@ readFloatArray(dataIn: number[]): void ...@@ -1809,19 +1949,23 @@ readFloatArray(dataIn: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeFloatArray([1.2, 1.3, 1.4]); data.writeFloatArray([1.2, 1.3, 1.4]);
}catch(error){ }catch(error){
console.info("rpc write floatArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write floatArray fail, errorMessage" + error.message); console.info("rpc write floatArray fail, errorCode " + e.code);
console.info("rpc write floatArray fail, errorMessage" + e.message);
} }
let array = new Array(3); let array: Array<number> = new Array(3);
try { try {
data.readFloatArray(array); data.readFloatArray(array);
} catch(error) { } catch(error) {
console.info("rpc read floatArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read floatArray fail, errorMessage" + error.message); console.info("rpc read floatArray fail, errorCode " + e.code);
console.info("rpc read floatArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1850,19 +1994,23 @@ readFloatArray(): number[] ...@@ -1850,19 +1994,23 @@ readFloatArray(): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeFloatArray([1.2, 1.3, 1.4]); data.writeFloatArray([1.2, 1.3, 1.4]);
} catch(error) { } catch(error) {
console.info("rpc write floatArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write floatArray fail, errorMessage" + error.message); console.info("rpc write floatArray fail, errorCode " + e.code);
console.info("rpc write floatArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readFloatArray(); let array = data.readFloatArray();
console.log("RpcClient: readFloatArray is " + array); console.log("RpcClient: readFloatArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read floatArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read floatArray fail, errorMessage" + error.message); console.info("rpc read floatArray fail, errorCode " + e.code);
console.info("rpc read floatArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1891,12 +2039,15 @@ writeDoubleArray(doubleArray: number[]): void ...@@ -1891,12 +2039,15 @@ writeDoubleArray(doubleArray: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeDoubleArray([11.1, 12.2, 13.3]); data.writeDoubleArray([11.1, 12.2, 13.3]);
} catch(error) { } catch(error) {
console.info("rpc write doubleArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write doubleArray fail, errorMessage" + error.message); console.info("rpc write doubleArray fail, errorCode " + e.code);
console.info("rpc write doubleArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1925,19 +2076,23 @@ readDoubleArray(dataIn: number[]): void ...@@ -1925,19 +2076,23 @@ readDoubleArray(dataIn: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeDoubleArray([11.1, 12.2, 13.3]); data.writeDoubleArray([11.1, 12.2, 13.3]);
} catch(error) { } catch(error) {
console.info("rpc write doubleArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write doubleArray fail, errorMessage" + error.message); console.info("rpc write doubleArray fail, errorCode " + e.code);
console.info("rpc write doubleArray fail, errorMessage" + e.message);
} }
let array = new Array(3); let array: Array<number> = new Array(3);
try { try {
data.readDoubleArray(array); data.readDoubleArray(array);
} catch(error) { } catch(error) {
console.info("rpc read doubleArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read doubleArray fail, errorMessage" + error.message); console.info("rpc read doubleArray fail, errorCode " + e.code);
console.info("rpc read doubleArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -1966,19 +2121,23 @@ readDoubleArray(): number[] ...@@ -1966,19 +2121,23 @@ readDoubleArray(): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeDoubleArray([11.1, 12.2, 13.3]); data.writeDoubleArray([11.1, 12.2, 13.3]);
} catch(error) { } catch(error) {
console.info("rpc write doubleArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write doubleArray fail, errorMessage" + error.message); console.info("rpc write doubleArray fail, errorCode " + e.code);
console.info("rpc write doubleArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readDoubleArray(); let array = data.readDoubleArray();
console.log("RpcClient: readDoubleArray is " + array); console.log("RpcClient: readDoubleArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read doubleArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read doubleArray fail, errorMessage" + error.message); console.info("rpc read doubleArray fail, errorCode " + e.code);
console.info("rpc read doubleArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2007,12 +2166,15 @@ writeBooleanArray(booleanArray: boolean[]): void ...@@ -2007,12 +2166,15 @@ writeBooleanArray(booleanArray: boolean[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeBooleanArray([false, true, false]); data.writeBooleanArray([false, true, false]);
} catch(error) { } catch(error) {
console.info("rpc write booleanArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write booleanArray fail, errorMessage" + error.message); console.info("rpc write booleanArray fail, errorCode " + e.code);
console.info("rpc write booleanArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2041,19 +2203,23 @@ readBooleanArray(dataIn: boolean[]): void ...@@ -2041,19 +2203,23 @@ readBooleanArray(dataIn: boolean[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeBooleanArray([false, true, false]); data.writeBooleanArray([false, true, false]);
} catch(error) { } catch(error) {
console.info("rpc write booleanArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write booleanArray fail, errorMessage" + error.message); console.info("rpc write booleanArray fail, errorCode " + e.code);
console.info("rpc write booleanArray fail, errorMessage" + e.message);
} }
let array = new Array(3); let array: Array<boolean> = new Array(3);
try { try {
data.readBooleanArray(array); data.readBooleanArray(array);
} catch(error) { } catch(error) {
console.info("rpc read booleanArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read booleanArray fail, errorMessage" + error.message); console.info("rpc read booleanArray fail, errorCode " + e.code);
console.info("rpc read booleanArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2082,19 +2248,23 @@ readBooleanArray(): boolean[] ...@@ -2082,19 +2248,23 @@ readBooleanArray(): boolean[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeBooleanArray([false, true, false]); data.writeBooleanArray([false, true, false]);
} catch(error) { } catch(error) {
console.info("rpc write booleanArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write booleanArray fail, errorMessage" + error.message); console.info("rpc write booleanArray fail, errorCode " + e.code);
console.info("rpc write booleanArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readBooleanArray(); let array = data.readBooleanArray();
console.log("RpcClient: readBooleanArray is " + array); console.log("RpcClient: readBooleanArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read booleanArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read booleanArray fail, errorMessage" + error.message); console.info("rpc read booleanArray fail, errorCode " + e.code);
console.info("rpc read booleanArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2123,12 +2293,15 @@ writeCharArray(charArray: number[]): void ...@@ -2123,12 +2293,15 @@ writeCharArray(charArray: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeCharArray([97, 98, 88]); data.writeCharArray([97, 98, 88]);
} catch(error) { } catch(error) {
console.info("rpc write charArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write charArray fail, errorMessage" + error.message); console.info("rpc write charArray fail, errorCode " + e.code);
console.info("rpc write charArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2157,19 +2330,23 @@ readCharArray(dataIn: number[]): void ...@@ -2157,19 +2330,23 @@ readCharArray(dataIn: number[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeCharArray([97, 98, 88]); data.writeCharArray([97, 98, 88]);
} catch(error) { } catch(error) {
console.info("rpc write charArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write charArray fail, errorMessage" + error.message); console.info("rpc write charArray fail, errorCode " + e.code);
console.info("rpc write charArray fail, errorMessage" + e.message);
} }
let array = new Array(3); let array: Array<number> = new Array(3);
try { try {
data.readCharArray(array); data.readCharArray(array);
} catch(error) { } catch(error) {
console.info("rpc read charArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read charArray fail, errorMessage" + error.message); console.info("rpc read charArray fail, errorCode " + e.code);
console.info("rpc read charArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2198,20 +2375,24 @@ readCharArray(): number[] ...@@ -2198,20 +2375,24 @@ readCharArray(): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeCharArray([97, 98, 88]); data.writeCharArray([97, 98, 88]);
} catch(error) { } catch(error) {
console.info("rpc write charArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write charArray fail, errorMessage" + error.message); console.info("rpc write charArray fail, errorCode " + e.code);
console.info("rpc write charArray fail, errorMessage" + e.message);
} }
let array = new Array(3); let array: Array<number> = new Array(3);
try { try {
let array = data.readCharArray(); let array = data.readCharArray();
console.log("RpcClient: readCharArray is " + array); console.log("RpcClient: readCharArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read charArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read charArray fail, errorMessage" + error.message); console.info("rpc read charArray fail, errorCode " + e.code);
console.info("rpc read charArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2240,12 +2421,15 @@ writeStringArray(stringArray: string[]): void ...@@ -2240,12 +2421,15 @@ writeStringArray(stringArray: string[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeStringArray(["abc", "def"]); data.writeStringArray(["abc", "def"]);
} catch(error) { } catch(error) {
console.info("rpc write stringArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write stringArray fail, errorMessage" + error.message); console.info("rpc write stringArray fail, errorCode " + e.code);
console.info("rpc write stringArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2274,19 +2458,23 @@ readStringArray(dataIn: string[]): void ...@@ -2274,19 +2458,23 @@ readStringArray(dataIn: string[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeStringArray(["abc", "def"]); data.writeStringArray(["abc", "def"]);
} catch(error) { } catch(error) {
console.info("rpc write stringArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write stringArray fail, errorMessage" + error.message); console.info("rpc write stringArray fail, errorCode " + e.code);
console.info("rpc write stringArray fail, errorMessage" + e.message);
} }
let array = new Array(2); let array: Array<string> = new Array(2);
try { try {
data.readStringArray(array); data.readStringArray(array);
} catch(error) { } catch(error) {
console.info("rpc read stringArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read stringArray fail, errorMessage" + error.message); console.info("rpc read stringArray fail, errorCode " + e.code);
console.info("rpc read stringArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2315,19 +2503,23 @@ readStringArray(): string[] ...@@ -2315,19 +2503,23 @@ readStringArray(): string[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
try { try {
data.writeStringArray(["abc", "def"]); data.writeStringArray(["abc", "def"]);
} catch(error) { } catch(error) {
console.info("rpc write stringArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write stringArray fail, errorMessage" + error.message); console.info("rpc write stringArray fail, errorCode " + e.code);
console.info("rpc write stringArray fail, errorMessage" + e.message);
} }
try { try {
let array = data.readStringArray(); let array = data.readStringArray();
console.log("RpcClient: readStringArray is " + array); console.log("RpcClient: readStringArray is " + array);
} catch(error) { } catch(error) {
console.info("rpc read stringArray fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read stringArray fail, errorMessage" + error.message); console.info("rpc read stringArray fail, errorCode " + e.code);
console.info("rpc read stringArray fail, errorMessage" + e.message);
} }
``` ```
...@@ -2350,19 +2542,22 @@ writeNoException(): void ...@@ -2350,19 +2542,22 @@ writeNoException(): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
if (code === 1) { if (code === 1) {
console.log("RpcServer: onRemoteRequest called"); console.log("RpcServer: onRemoteRequest called");
try { try {
reply.writeNoException(); reply.writeNoException();
} catch(error) { } catch(error) {
console.info("rpc write no exception fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write no exception fail, errorMessage" + error.message); console.info("rpc write no exception fail, errorCode " + e.code);
console.info("rpc write no exception fail, errorMessage" + e.message);
} }
return true; return true;
} else { } else {
...@@ -2396,29 +2591,32 @@ readException(): void ...@@ -2396,29 +2591,32 @@ readException(): void
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BussinessError } from '@ohos.base';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...@@ -2430,21 +2628,22 @@ readException(): void ...@@ -2430,21 +2628,22 @@ readException(): void
data.writeInt(1); data.writeInt(1);
data.writeString("hello"); data.writeString("hello");
proxy.sendMessageRequest(1, data, reply, option) proxy.sendMessageRequest(1, data, reply, option)
.then(function(errCode) { .then((errCode: number) => {
if (errCode === 0) { if (errCode === 0) {
console.log("sendMessageRequest got result"); console.log("sendMessageRequest got result");
try { try {
reply.readException(); reply.readException();
} catch(error) { } catch(error) {
console.info("rpc read exception fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read no exception fail, errorMessage" + error.message); console.info("rpc read exception fail, errorCode " + e.code);
console.info("rpc read no exception fail, errorMessage" + e.message);
} }
let msg = reply.readString(); let msg = reply.readString();
console.log("RPCTest: reply msg: " + msg); console.log("RPCTest: reply msg: " + msg);
} else { } else {
console.log("RPCTest: sendMessageRequest failed, errCode: " + errCode); console.log("RPCTest: sendMessageRequest failed, errCode: " + errCode);
} }
}).catch(function(e) { }).catch((e: Error) => {
console.log("RPCTest: sendMessageRequest got exception: " + e.message); console.log("RPCTest: sendMessageRequest got exception: " + e.message);
}).finally (() => { }).finally (() => {
console.log("RPCTest: sendMessageRequest ends, reclaim parcel"); console.log("RPCTest: sendMessageRequest ends, reclaim parcel");
...@@ -2478,19 +2677,21 @@ writeParcelableArray(parcelableArray: Parcelable[]): void ...@@ -2478,19 +2677,21 @@ writeParcelableArray(parcelableArray: Parcelable[]): void
**示例:** **示例:**
```ts ```ts
class MyParcelable { import { BussinessError } from '@ohos.base';
class MyParcelable implements rpc.Parcelable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageSequence) { marshalling(messageSequence: rpc.MessageSequence): boolean {
messageSequence.writeInt(this.num); messageSequence.writeInt(this.num);
messageSequence.writeString(this.str); messageSequence.writeString(this.str);
return true; return true;
} }
unmarshalling(messageSequence) { unmarshalling(messageSequence: rpc.MessageSequence): boolean {
this.num = messageSequence.readInt(); this.num = messageSequence.readInt();
this.str = messageSequence.readString(); this.str = messageSequence.readString();
return true; return true;
...@@ -2504,8 +2705,9 @@ writeParcelableArray(parcelableArray: Parcelable[]): void ...@@ -2504,8 +2705,9 @@ writeParcelableArray(parcelableArray: Parcelable[]): void
try { try {
data.writeParcelableArray(a); data.writeParcelableArray(a);
} catch(error) { } catch(error) {
console.info("rpc write parcelable array fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write parcelable array fail, errorMessage" + error.message); console.info("rpc write parcelable array fail, errorCode " + e.code);
console.info("rpc write parcelable array fail, errorMessage" + e.message);
} }
``` ```
...@@ -2535,19 +2737,21 @@ readParcelableArray(parcelableArray: Parcelable[]): void ...@@ -2535,19 +2737,21 @@ readParcelableArray(parcelableArray: Parcelable[]): void
**示例:** **示例:**
```ts ```ts
class MyParcelable { import { BussinessError } from '@ohos.base';
class MyParcelable implements rpc.Parcelable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageSequence) { marshalling(messageSequence: rpc.MessageSequence): boolean {
messageSequence.writeInt(this.num); messageSequence.writeInt(this.num);
messageSequence.writeString(this.str); messageSequence.writeString(this.str);
return true; return true;
} }
unmarshalling(messageSequence) { unmarshalling(messageSequence: rpc.MessageSequence): boolean {
this.num = messageSequence.readInt(); this.num = messageSequence.readInt();
this.str = messageSequence.readString(); this.str = messageSequence.readString();
return true; return true;
...@@ -2564,8 +2768,9 @@ readParcelableArray(parcelableArray: Parcelable[]): void ...@@ -2564,8 +2768,9 @@ readParcelableArray(parcelableArray: Parcelable[]): void
try { try {
data.readParcelableArray(b); data.readParcelableArray(b);
} catch(error) { } catch(error) {
console.info("rpc read parcelable array fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read parcelable array fail, errorMessage" + error.message); console.info("rpc read parcelable array fail, errorCode " + e.code);
console.info("rpc read parcelable array fail, errorMessage" + e.message);
} }
data.readParcelableArray(b); data.readParcelableArray(b);
``` ```
...@@ -2595,8 +2800,10 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): void ...@@ -2595,8 +2800,10 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
this.modifyLocalInterface(this, descriptor); this.modifyLocalInterface(this, descriptor);
} }
...@@ -2611,8 +2818,9 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): void ...@@ -2611,8 +2818,9 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): void
try { try {
data.writeRemoteObjectArray(a); data.writeRemoteObjectArray(a);
} catch(error) { } catch(error) {
console.info("rpc write remote object array fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write remote object array fail, errorMessage" + error.message); console.info("rpc write remote object array fail, errorCode " + e.code);
console.info("rpc write remote object array fail, errorMessage" + e.message);
} }
console.log("RpcClient: writeRemoteObjectArray is " + result); console.log("RpcClient: writeRemoteObjectArray is " + result);
``` ```
...@@ -2642,13 +2850,15 @@ readRemoteObjectArray(objects: IRemoteObject[]): void ...@@ -2642,13 +2850,15 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { import { BussinessError } from '@ohos.base';
class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
this.modifyLocalInterface(this, descriptor); this.modifyLocalInterface(this, descriptor);
} }
...@@ -2660,12 +2870,13 @@ readRemoteObjectArray(objects: IRemoteObject[]): void ...@@ -2660,12 +2870,13 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
let a = [new TestRemoteObject("testObject1"), new TestRemoteObject("testObject2"), new TestRemoteObject("testObject3")]; let a = [new TestRemoteObject("testObject1"), new TestRemoteObject("testObject2"), new TestRemoteObject("testObject3")];
let data = rpc.MessageSequence.create(); let data = rpc.MessageSequence.create();
data.writeRemoteObjectArray(a); data.writeRemoteObjectArray(a);
let b = new Array(3); let b: Array<rpc.IRemoteObject> = new Array(3);
try { try {
data.readRemoteObjectArray(b); data.readRemoteObjectArray(b);
} catch(error) { } catch(error) {
console.info("rpc read remote object array fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read remote object array fail, errorMessage" + error.message); console.info("rpc read remote object array fail, errorCode " + e.code);
console.info("rpc read remote object array fail, errorMessage" + e.message);
} }
data.readRemoteObjectArray(b); data.readRemoteObjectArray(b);
``` ```
...@@ -2695,8 +2906,10 @@ readRemoteObjectArray(): IRemoteObject[] ...@@ -2695,8 +2906,10 @@ readRemoteObjectArray(): IRemoteObject[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
this.modifyLocalInterface(this, descriptor); this.modifyLocalInterface(this, descriptor);
} }
...@@ -2712,8 +2925,9 @@ readRemoteObjectArray(): IRemoteObject[] ...@@ -2712,8 +2925,9 @@ readRemoteObjectArray(): IRemoteObject[]
let b = data.readRemoteObjectArray(); let b = data.readRemoteObjectArray();
console.log("RpcClient: readRemoteObjectArray is " + b); console.log("RpcClient: readRemoteObjectArray is " + b);
} catch(error) { } catch(error) {
console.info("rpc read remote object array fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read remote object array fail, errorMessage" + error.message); console.info("rpc read remote object array fail, errorCode " + e.code);
console.info("rpc read remote object array fail, errorMessage" + e.message);
} }
``` ```
...@@ -2735,13 +2949,16 @@ static closeFileDescriptor(fd: number): void ...@@ -2735,13 +2949,16 @@ static closeFileDescriptor(fd: number): void
```ts ```ts
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
import { BussinessError } from '@ohos.base';
let filePath = "path/to/file"; let filePath = "path/to/file";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
rpc.MessageSequence.closeFileDescriptor(file.fd); rpc.MessageSequence.closeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc close file descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc close file descriptor fail, errorMessage" + error.message); console.info("rpc close file descriptor fail, errorCode " + e.code);
console.info("rpc close file descriptor fail, errorMessage" + e.message);
} }
``` ```
...@@ -2777,13 +2994,16 @@ static dupFileDescriptor(fd: number) :number ...@@ -2777,13 +2994,16 @@ static dupFileDescriptor(fd: number) :number
```ts ```ts
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
import { BussinessError } from '@ohos.base';
let filePath = "path/to/file"; let filePath = "path/to/file";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
let newFd = rpc.MessageSequence.dupFileDescriptor(file.fd); let newFd = rpc.MessageSequence.dupFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc dup file descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc dup file descriptor fail, errorMessage" + error.message); console.info("rpc dup file descriptor fail, errorCode " + e.code);
console.info("rpc dup file descriptor fail, errorMessage" + e.message);
} }
``` ```
...@@ -2805,6 +3025,8 @@ containFileDescriptors(): boolean ...@@ -2805,6 +3025,8 @@ containFileDescriptors(): boolean
```ts ```ts
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
import { BussinessError } from '@ohos.base';
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();
...@@ -2812,15 +3034,17 @@ containFileDescriptors(): boolean ...@@ -2812,15 +3034,17 @@ containFileDescriptors(): boolean
try { try {
sequence.writeFileDescriptor(file.fd); sequence.writeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write file descriptor fail, errorMessage" + error.message); console.info("rpc write file descriptor fail, errorCode " + e.code);
console.info("rpc write file descriptor fail, errorMessage" + e.message);
} }
try { try {
let containFD = sequence.containFileDescriptors(); let containFD = sequence.containFileDescriptors();
console.log("RpcTest: sequence after write fd containFd result is : " + containFD); console.log("RpcTest: sequence after write fd containFd result is : " + containFD);
} catch(error) { } catch(error) {
console.info("rpc contain file descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc contain file descriptor fail, errorMessage" + error.message); console.info("rpc contain file descriptor fail, errorCode " + e.code);
console.info("rpc contain file descriptor fail, errorMessage" + e.message);
} }
``` ```
...@@ -2850,14 +3074,17 @@ writeFileDescriptor(fd: number): void ...@@ -2850,14 +3074,17 @@ writeFileDescriptor(fd: number): void
```ts ```ts
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
import { BussinessError } from '@ohos.base';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let filePath = "path/to/file"; let filePath = "path/to/file";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
sequence.writeFileDescriptor(file.fd); sequence.writeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write file descriptor fail, errorMessage" + error.message); console.info("rpc write file descriptor fail, errorCode " + e.code);
console.info("rpc write file descriptor fail, errorMessage" + e.message);
} }
``` ```
...@@ -2887,20 +3114,24 @@ readFileDescriptor(): number ...@@ -2887,20 +3114,24 @@ readFileDescriptor(): number
```ts ```ts
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
import { BussinessError } from '@ohos.base';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let filePath = "path/to/file"; let filePath = "path/to/file";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
try { try {
sequence.writeFileDescriptor(file.fd); sequence.writeFileDescriptor(file.fd);
} catch(error) { } catch(error) {
console.info("rpc write file descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write file descriptor fail, errorMessage" + error.message); console.info("rpc write file descriptor fail, errorCode " + e.code);
console.info("rpc write file descriptor fail, errorMessage" + e.message);
} }
try { try {
let readFD = sequence.readFileDescriptor(); let readFD = sequence.readFileDescriptor();
} catch(error) { } catch(error) {
console.info("rpc read file descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read file descriptor fail, errorMessage" + error.message); console.info("rpc read file descriptor fail, errorCode " + e.code);
console.info("rpc read file descriptor fail, errorMessage" + e.message);
} }
``` ```
...@@ -2929,19 +3160,23 @@ writeAshmem(ashmem: Ashmem): void ...@@ -2929,19 +3160,23 @@ writeAshmem(ashmem: Ashmem): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let ashmem; let ashmem: rpc.Ashmem;
try { try {
ashmem = rpc.Ashmem.create("ashmem", 1024); ashmem = rpc.Ashmem.create("ashmem", 1024);
try {
sequence.writeAshmem(ashmem);
} catch(error) {
let e: BussinessError = error as BussinessError;
console.info("rpc write ashmem fail, errorCode " + e.code);
console.info("rpc write ashmem fail, errorMessage" + e.message);
}
} catch(error) { } catch(error) {
console.info("rpc create ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc creat ashmem fail, errorMessage" + error.message); console.info("rpc create ashmem fail, errorCode " + e.code);
} console.info("rpc creat ashmem fail, errorMessage" + e.message);
try {
sequence.writeAshmem(ashmem);
} catch(error) {
console.info("rpc write ashmem fail, errorCode " + error.code);
console.info("rpc write ashmem fail, errorMessage" + error.message);
} }
``` ```
...@@ -2970,26 +3205,32 @@ readAshmem(): Ashmem ...@@ -2970,26 +3205,32 @@ readAshmem(): Ashmem
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let ashmem; let ashmem: rpc.Ashmem;
try { try {
ashmem = rpc.Ashmem.create("ashmem", 1024); ashmem = rpc.Ashmem.create("ashmem", 1024);
try {
sequence.writeAshmem(ashmem);
} catch(error) {
let e: BussinessError = error as BussinessError;
console.info("rpc write ashmem fail, errorCode " + e.code);
console.info("rpc write ashmem fail, errorMessage" + e.message);
}
} catch(error) { } catch(error) {
console.info("rpc create ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc creat ashmem fail, errorMessage" + error.message); console.info("rpc create ashmem fail, errorCode " + e.code);
} console.info("rpc creat ashmem fail, errorMessage" + e.message);
try {
sequence.writeAshmem(ashmem);
} catch(error) {
console.info("rpc write ashmem fail, errorCode " + error.code);
console.info("rpc write ashmem fail, errorMessage" + error.message);
} }
try { try {
let readAshmem = sequence.readAshmem(); let readAshmem = sequence.readAshmem();
console.log("RpcTest: read ashmem to result is : " + readAshmem); console.log("RpcTest: read ashmem to result is : " + readAshmem);
} catch(error) { } catch(error) {
console.info("rpc read ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read ashmem fail, errorMessage" + error.message); console.info("rpc read ashmem fail, errorCode " + e.code);
console.info("rpc read ashmem fail, errorMessage" + e.message);
} }
``` ```
...@@ -3041,13 +3282,16 @@ writeRawData(rawData: number[], size: number): void ...@@ -3041,13 +3282,16 @@ writeRawData(rawData: number[], size: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let arr = [1, 2, 3, 4, 5]; let arr = [1, 2, 3, 4, 5];
try { try {
sequence.writeRawData(arr, arr.length); sequence.writeRawData(arr, arr.length);
} catch(error) { } catch(error) {
console.info("rpc write rawdata fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write rawdata fail, errorMessage" + error.message); console.info("rpc write rawdata fail, errorCode " + e.code);
console.info("rpc write rawdata fail, errorMessage" + e.message);
} }
``` ```
...@@ -3082,20 +3326,24 @@ readRawData(size: number): number[] ...@@ -3082,20 +3326,24 @@ readRawData(size: number): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let sequence = new rpc.MessageSequence(); let sequence = new rpc.MessageSequence();
let arr = [1, 2, 3, 4, 5]; let arr = [1, 2, 3, 4, 5];
try { try {
sequence.writeRawData(arr, arr.length); sequence.writeRawData(arr, arr.length);
} catch(error) { } catch(error) {
console.info("rpc write rawdata fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc write rawdata fail, errorMessage" + error.message); console.info("rpc write rawdata fail, errorCode " + e.code);
console.info("rpc write rawdata fail, errorMessage" + e.message);
} }
try { try {
let result = sequence.readRawData(5); let result = sequence.readRawData(5);
console.log("RpcTest: sequence read raw data result is : " + result); console.log("RpcTest: sequence read raw data result is : " + result);
} catch(error) { } catch(error) {
console.info("rpc read rawdata fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc read rawdata fail, errorMessage" + error.message); console.info("rpc read rawdata fail, errorCode " + e.code);
console.info("rpc read rawdata fail, errorMessage" + e.message);
} }
``` ```
...@@ -3164,13 +3412,13 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): boolean ...@@ -3164,13 +3412,13 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): boolean
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -3205,13 +3453,13 @@ readRemoteObject(): IRemoteObject ...@@ -3205,13 +3453,13 @@ readRemoteObject(): IRemoteObject
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -3276,7 +3524,7 @@ readInterfaceToken(): string ...@@ -3276,7 +3524,7 @@ readInterfaceToken(): string
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let interfaceToken = data.readInterfaceToken(); let interfaceToken = data.readInterfaceToken();
console.log("RpcServer: interfaceToken is " + interfaceToken); console.log("RpcServer: interfaceToken is " + interfaceToken);
return true; return true;
...@@ -3402,7 +3650,7 @@ getWritableBytes(): number ...@@ -3402,7 +3650,7 @@ getWritableBytes(): number
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let getWritableBytes = data.getWritableBytes(); let getWritableBytes = data.getWritableBytes();
console.log("RpcServer: getWritableBytes is " + getWritableBytes); console.log("RpcServer: getWritableBytes is " + getWritableBytes);
return true; return true;
...@@ -3428,7 +3676,7 @@ getReadableBytes(): number ...@@ -3428,7 +3676,7 @@ getReadableBytes(): number
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
let result = data.getReadableBytes(); let result = data.getReadableBytes();
console.log("RpcServer: getReadableBytes is " + result); console.log("RpcServer: getReadableBytes is " + result);
return true; return true;
...@@ -4036,19 +4284,19 @@ writeSequenceable(val: Sequenceable): boolean ...@@ -4036,19 +4284,19 @@ writeSequenceable(val: Sequenceable): boolean
**示例:** **示例:**
```ts ```ts
class MySequenceable { class MySequenceable implements rpc.Sequenceable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageParcel) { marshalling(messageParcel: rpc.MessageParcel): boolean {
messageParcel.writeInt(this.num); messageParcel.writeInt(this.num);
messageParcel.writeString(this.str); messageParcel.writeString(this.str);
return true; return true;
} }
unmarshalling(messageParcel) { unmarshalling(messageParcel: rpc.MessageParcel): boolean {
this.num = messageParcel.readInt(); this.num = messageParcel.readInt();
this.str = messageParcel.readString(); this.str = messageParcel.readString();
return true; return true;
...@@ -4083,19 +4331,19 @@ readSequenceable(dataIn: Sequenceable): boolean ...@@ -4083,19 +4331,19 @@ readSequenceable(dataIn: Sequenceable): boolean
**示例:** **示例:**
```ts ```ts
class MySequenceable { class MySequenceable implements rpc.Sequenceable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageParcel) { marshalling(messageParcel: rpc.MessageParcel): boolean {
messageParcel.writeInt(this.num); messageParcel.writeInt(this.num);
messageParcel.writeString(this.str); messageParcel.writeString(this.str);
return true; return true;
} }
unmarshalling(messageParcel) { unmarshalling(messageParcel: rpc.MessageParcel): boolean {
this.num = messageParcel.readInt(); this.num = messageParcel.readInt();
this.str = messageParcel.readString(); this.str = messageParcel.readString();
return true; return true;
...@@ -4160,7 +4408,7 @@ readByteArray(dataIn: number[]): void ...@@ -4160,7 +4408,7 @@ readByteArray(dataIn: number[]): void
let ByteArrayVar = [1, 2, 3, 4, 5]; let ByteArrayVar = [1, 2, 3, 4, 5];
let result = data.writeByteArray(ByteArrayVar); let result = data.writeByteArray(ByteArrayVar);
console.log("RpcClient: writeByteArray is " + result); console.log("RpcClient: writeByteArray is " + result);
let array = new Array(5); let array: Array<number> = new Array(5);
data.readByteArray(array); data.readByteArray(array);
``` ```
...@@ -4237,7 +4485,7 @@ readShortArray(dataIn: number[]): void ...@@ -4237,7 +4485,7 @@ readShortArray(dataIn: number[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeShortArray([11, 12, 13]); let result = data.writeShortArray([11, 12, 13]);
console.log("RpcClient: writeShortArray is " + result); console.log("RpcClient: writeShortArray is " + result);
let array = new Array(3); let array: Array<number> = new Array(3);
data.readShortArray(array); data.readShortArray(array);
``` ```
...@@ -4313,7 +4561,7 @@ readIntArray(dataIn: number[]): void ...@@ -4313,7 +4561,7 @@ readIntArray(dataIn: number[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeIntArray([100, 111, 112]); let result = data.writeIntArray([100, 111, 112]);
console.log("RpcClient: writeIntArray is " + result); console.log("RpcClient: writeIntArray is " + result);
let array = new Array(3); let array: Array<number> = new Array(3);
data.readIntArray(array); data.readIntArray(array);
``` ```
...@@ -4389,7 +4637,7 @@ readLongArray(dataIn: number[]): void ...@@ -4389,7 +4637,7 @@ readLongArray(dataIn: number[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeLongArray([1111, 1112, 1113]); let result = data.writeLongArray([1111, 1112, 1113]);
console.log("RpcClient: writeLongArray is " + result); console.log("RpcClient: writeLongArray is " + result);
let array = new Array(3); let array: Array<number> = new Array(3);
data.readLongArray(array); data.readLongArray(array);
``` ```
...@@ -4465,7 +4713,7 @@ readFloatArray(dataIn: number[]): void ...@@ -4465,7 +4713,7 @@ readFloatArray(dataIn: number[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeFloatArray([1.2, 1.3, 1.4]); let result = data.writeFloatArray([1.2, 1.3, 1.4]);
console.log("RpcClient: writeFloatArray is " + result); console.log("RpcClient: writeFloatArray is " + result);
let array = new Array(3); let array: Array<number> = new Array(3);
data.readFloatArray(array); data.readFloatArray(array);
``` ```
...@@ -4541,7 +4789,7 @@ readDoubleArray(dataIn: number[]): void ...@@ -4541,7 +4789,7 @@ readDoubleArray(dataIn: number[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeDoubleArray([11.1, 12.2, 13.3]); let result = data.writeDoubleArray([11.1, 12.2, 13.3]);
console.log("RpcClient: writeDoubleArray is " + result); console.log("RpcClient: writeDoubleArray is " + result);
let array = new Array(3); let array: Array<number> = new Array(3);
data.readDoubleArray(array); data.readDoubleArray(array);
``` ```
...@@ -4617,7 +4865,7 @@ readBooleanArray(dataIn: boolean[]): void ...@@ -4617,7 +4865,7 @@ readBooleanArray(dataIn: boolean[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeBooleanArray([false, true, false]); let result = data.writeBooleanArray([false, true, false]);
console.log("RpcClient: writeBooleanArray is " + result); console.log("RpcClient: writeBooleanArray is " + result);
let array = new Array(3); let array: Array<boolean> = new Array(3);
data.readBooleanArray(array); data.readBooleanArray(array);
``` ```
...@@ -4693,7 +4941,7 @@ readCharArray(dataIn: number[]): void ...@@ -4693,7 +4941,7 @@ readCharArray(dataIn: number[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeCharArray([97, 98, 99]); let result = data.writeCharArray([97, 98, 99]);
console.log("RpcClient: writeCharArray is " + result); console.log("RpcClient: writeCharArray is " + result);
let array = new Array(3); let array: Array<number> = new Array(3);
data.readCharArray(array); data.readCharArray(array);
``` ```
...@@ -4769,7 +5017,7 @@ readStringArray(dataIn: string[]): void ...@@ -4769,7 +5017,7 @@ readStringArray(dataIn: string[]): void
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeStringArray(["abc", "def"]); let result = data.writeStringArray(["abc", "def"]);
console.log("RpcClient: writeStringArray is " + result); console.log("RpcClient: writeStringArray is " + result);
let array = new Array(2); let array: Array<string> = new Array(2);
data.readStringArray(array); data.readStringArray(array);
``` ```
...@@ -4808,13 +5056,13 @@ writeNoException(): void ...@@ -4808,13 +5056,13 @@ writeNoException(): void
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -4826,7 +5074,7 @@ writeNoException(): void ...@@ -4826,7 +5074,7 @@ writeNoException(): void
isObjectDead(): boolean { isObjectDead(): boolean {
return false; return false;
} }
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
if (code === 1) { if (code === 1) {
console.log("RpcServer: onRemoteRequest called"); console.log("RpcServer: onRemoteRequest called");
reply.writeNoException(); reply.writeNoException();
...@@ -4854,29 +5102,31 @@ readException(): void ...@@ -4854,29 +5102,31 @@ readException(): void
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...@@ -4888,7 +5138,7 @@ readException(): void ...@@ -4888,7 +5138,7 @@ readException(): void
data.writeInt(1); data.writeInt(1);
data.writeString("hello"); data.writeString("hello");
proxy.sendMessageRequest(1, data, reply, option) proxy.sendMessageRequest(1, data, reply, option)
.then(function(errCode) { .then((errCode: number) => {
if (errCode === 0) { if (errCode === 0) {
console.log("sendMessageRequest got result"); console.log("sendMessageRequest got result");
reply.readException(); reply.readException();
...@@ -4897,8 +5147,8 @@ readException(): void ...@@ -4897,8 +5147,8 @@ readException(): void
} else { } else {
console.log("RPCTest: sendMessageRequest failed, errCode: " + errCode); console.log("RPCTest: sendMessageRequest failed, errCode: " + errCode);
} }
}).catch(function(e) { }).catch((error: Error) => {
console.log("RPCTest: sendMessageRequest got exception: " + e.message); console.log("RPCTest: sendMessageRequest got exception: " + error.message);
}).finally (() => { }).finally (() => {
console.log("RPCTest: sendMessageRequest ends, reclaim parcel"); console.log("RPCTest: sendMessageRequest ends, reclaim parcel");
data.reclaim(); data.reclaim();
...@@ -4929,19 +5179,19 @@ writeSequenceableArray(sequenceableArray: Sequenceable[]): boolean ...@@ -4929,19 +5179,19 @@ writeSequenceableArray(sequenceableArray: Sequenceable[]): boolean
**示例:** **示例:**
```ts ```ts
class MySequenceable { class MySequenceable implements rpc.Sequenceable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageParcel) { marshalling(messageParcel: rpc.MessageParcel): boolean {
messageParcel.writeInt(this.num); messageParcel.writeInt(this.num);
messageParcel.writeString(this.str); messageParcel.writeString(this.str);
return true; return true;
} }
unmarshalling(messageParcel) { unmarshalling(messageParcel: rpc.MessageParcel): boolean {
this.num = messageParcel.readInt(); this.num = messageParcel.readInt();
this.str = messageParcel.readString(); this.str = messageParcel.readString();
return true; return true;
...@@ -4973,19 +5223,19 @@ readSequenceableArray(sequenceableArray: Sequenceable[]): void ...@@ -4973,19 +5223,19 @@ readSequenceableArray(sequenceableArray: Sequenceable[]): void
**示例:** **示例:**
```ts ```ts
class MySequenceable { class MySequenceable implements rpc.Sequenceable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageParcel) { marshalling(messageParcel: rpc.MessageParcel): boolean {
messageParcel.writeInt(this.num); messageParcel.writeInt(this.num);
messageParcel.writeString(this.str); messageParcel.writeString(this.str);
return true; return true;
} }
unmarshalling(messageParcel) { unmarshalling(messageParcel: rpc.MessageParcel): boolean {
this.num = messageParcel.readInt(); this.num = messageParcel.readInt();
this.str = messageParcel.readString(); this.str = messageParcel.readString();
return true; return true;
...@@ -5025,13 +5275,13 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean ...@@ -5025,13 +5275,13 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
this.attachLocalInterface(this, descriptor); this.attachLocalInterface(this, descriptor);
} }
...@@ -5071,13 +5321,13 @@ readRemoteObjectArray(objects: IRemoteObject[]): void ...@@ -5071,13 +5321,13 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
this.attachLocalInterface(this, descriptor); this.attachLocalInterface(this, descriptor);
} }
...@@ -5097,7 +5347,7 @@ readRemoteObjectArray(objects: IRemoteObject[]): void ...@@ -5097,7 +5347,7 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
let a = [new TestRemoteObject("testObject1"), new TestRemoteObject("testObject2"), new TestRemoteObject("testObject3")]; let a = [new TestRemoteObject("testObject1"), new TestRemoteObject("testObject2"), new TestRemoteObject("testObject3")];
let data = rpc.MessageParcel.create(); let data = rpc.MessageParcel.create();
let result = data.writeRemoteObjectArray(a); let result = data.writeRemoteObjectArray(a);
let b = new Array(3); let b: Array<rpc.IRemoteObject> = new Array(3);
data.readRemoteObjectArray(b); data.readRemoteObjectArray(b);
``` ```
...@@ -5118,13 +5368,13 @@ readRemoteObjectArray(): IRemoteObject[] ...@@ -5118,13 +5368,13 @@ readRemoteObjectArray(): IRemoteObject[]
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
this.attachLocalInterface(this, descriptor); this.attachLocalInterface(this, descriptor);
} }
...@@ -5167,6 +5417,7 @@ static closeFileDescriptor(fd: number): void ...@@ -5167,6 +5417,7 @@ static closeFileDescriptor(fd: number): void
```ts ```ts
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
let filePath = "path/to/file"; let filePath = "path/to/file";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
rpc.MessageParcel.closeFileDescriptor(file.fd); rpc.MessageParcel.closeFileDescriptor(file.fd);
...@@ -5196,6 +5447,7 @@ static dupFileDescriptor(fd: number) :number ...@@ -5196,6 +5447,7 @@ static dupFileDescriptor(fd: number) :number
```ts ```ts
import fs from '@ohos.file.fs'; import fs from '@ohos.file.fs';
let filePath = "path/to/file"; let filePath = "path/to/file";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let newFd = rpc.MessageParcel.dupFileDescriptor(file.fd); let newFd = rpc.MessageParcel.dupFileDescriptor(file.fd);
...@@ -5219,6 +5471,7 @@ containFileDescriptors(): boolean ...@@ -5219,6 +5471,7 @@ containFileDescriptors(): boolean
```ts ```ts
import fs from '@ohos.file.fs'; 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();
...@@ -5253,6 +5506,7 @@ writeFileDescriptor(fd: number): boolean ...@@ -5253,6 +5506,7 @@ writeFileDescriptor(fd: number): boolean
```ts ```ts
import fs from '@ohos.file.fs'; 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 file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
...@@ -5278,6 +5532,7 @@ readFileDescriptor(): number ...@@ -5278,6 +5532,7 @@ readFileDescriptor(): number
```ts ```ts
import fs from '@ohos.file.fs'; 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 file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
...@@ -5450,19 +5705,19 @@ marshalling(dataOut: MessageSequence): boolean ...@@ -5450,19 +5705,19 @@ marshalling(dataOut: MessageSequence): boolean
**示例:** **示例:**
```ts ```ts
class MyParcelable { class MyParcelable implements rpc.Parcelable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageSequence) { marshalling(messageSequence: rpc.MessageSequence): boolean {
messageSequence.writeInt(this.num); messageSequence.writeInt(this.num);
messageSequence.writeString(this.str); messageSequence.writeString(this.str);
return true; return true;
} }
unmarshalling(messageSequence) { unmarshalling(messageSequence: rpc.MessageSequence): boolean {
this.num = messageSequence.readInt(); this.num = messageSequence.readInt();
this.str = messageSequence.readString(); this.str = messageSequence.readString();
return true; return true;
...@@ -5500,19 +5755,19 @@ unmarshalling(dataIn: MessageSequence): boolean ...@@ -5500,19 +5755,19 @@ unmarshalling(dataIn: MessageSequence): boolean
**示例:** **示例:**
```ts ```ts
class MyParcelable { class MyParcelable implements rpc.Parcelable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageSequence) { marshalling(messageSequence: rpc.MessageSequence): boolean {
messageSequence.writeInt(this.num); messageSequence.writeInt(this.num);
messageSequence.writeString(this.str); messageSequence.writeString(this.str);
return true; return true;
} }
unmarshalling(messageSequence) { unmarshalling(messageSequence: rpc.MessageSequence): boolean {
this.num = messageSequence.readInt(); this.num = messageSequence.readInt();
this.str = messageSequence.readString(); this.str = messageSequence.readString();
return true; return true;
...@@ -5556,19 +5811,19 @@ marshalling(dataOut: MessageParcel): boolean ...@@ -5556,19 +5811,19 @@ marshalling(dataOut: MessageParcel): boolean
**示例:** **示例:**
```ts ```ts
class MySequenceable { class MySequenceable implements rpc.Sequenceable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageParcel) { marshalling(messageParcel: rpc.MessageParcel): boolean {
messageParcel.writeInt(this.num); messageParcel.writeInt(this.num);
messageParcel.writeString(this.str); messageParcel.writeString(this.str);
return true; return true;
} }
unmarshalling(messageParcel) { unmarshalling(messageParcel: rpc.MessageParcel): boolean {
this.num = messageParcel.readInt(); this.num = messageParcel.readInt();
this.str = messageParcel.readString(); this.str = messageParcel.readString();
return true; return true;
...@@ -5606,19 +5861,19 @@ unmarshalling(dataIn: MessageParcel): boolean ...@@ -5606,19 +5861,19 @@ unmarshalling(dataIn: MessageParcel): boolean
**示例:** **示例:**
```ts ```ts
class MySequenceable { class MySequenceable implements rpc.Sequenceable {
num: number; num: number;
str: string; str: string;
constructor(num, str) { constructor(num: number, str: string) {
this.num = num; this.num = num;
this.str = str; this.str = str;
} }
marshalling(messageParcel) { marshalling(messageParcel: rpc.MessageParcel): boolean {
messageParcel.writeInt(this.num); messageParcel.writeInt(this.num);
messageParcel.writeString(this.str); messageParcel.writeString(this.str);
return true; return true;
} }
unmarshalling(messageParcel) { unmarshalling(messageParcel: rpc.MessageParcel): boolean {
this.num = messageParcel.readInt(); this.num = messageParcel.readInt();
this.str = messageParcel.readString(); this.str = messageParcel.readString();
return true; return true;
...@@ -5670,28 +5925,31 @@ asObject(): IRemoteObject ...@@ -5670,28 +5925,31 @@ asObject(): IRemoteObject
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
let proxy; import Want from '@ohos.app.ability.Want';
let connect = { import common from '@ohos.app.ability.common';
onConnect: function(elementName, remoteProxy) {
let proxy: rpc.RemoteProxy;
let connect: common.ConnectOptions = {
onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的asObject接口方法获取代理或远端对象 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的asObject接口方法获取代理或远端对象
...@@ -5699,7 +5957,7 @@ asObject(): IRemoteObject ...@@ -5699,7 +5957,7 @@ asObject(): IRemoteObject
```ts ```ts
class TestProxy { class TestProxy {
remote: rpc.RemoteObject; remote: rpc.RemoteObject;
constructor(remote) { constructor(remote: rpc.RemoteObject) {
this.remote = remote; this.remote = remote;
} }
asObject() { asObject() {
...@@ -5724,7 +5982,7 @@ onRemoteDied(): void ...@@ -5724,7 +5982,7 @@ onRemoteDied(): void
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
...@@ -6107,28 +6365,31 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6107,28 +6365,31 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
let proxy; import Want from '@ohos.app.ability.Want';
let connect = { import common from '@ohos.app.ability.common';
onConnect: function(elementName, remoteProxy) {
let proxy: rpc.RemoteProxy;
let connect: common.ConnectOptions = {
onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...@@ -6182,29 +6443,31 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6182,29 +6443,31 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...@@ -6216,7 +6479,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6216,7 +6479,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
data.writeInt(1); data.writeInt(1);
data.writeString("hello"); data.writeString("hello");
proxy.sendMessageRequest(1, data, reply, option) proxy.sendMessageRequest(1, data, reply, option)
.then(function(result) { .then((result: rpc.RequestResult) => {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendMessageRequest got result"); console.log("sendMessageRequest got result");
result.reply.readException(); result.reply.readException();
...@@ -6225,7 +6488,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6225,7 +6488,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
} else { } else {
console.log("RPCTest: sendMessageRequest failed, errCode: " + result.errCode); console.log("RPCTest: sendMessageRequest failed, errCode: " + result.errCode);
} }
}).catch(function(e) { }).catch((e: Error) => {
console.log("RPCTest: sendMessageRequest got exception: " + e.message); console.log("RPCTest: sendMessageRequest got exception: " + e.message);
}).finally (() => { }).finally (() => {
console.log("RPCTest: sendMessageRequest ends, reclaim parcel"); console.log("RPCTest: sendMessageRequest ends, reclaim parcel");
...@@ -6266,29 +6529,31 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6266,29 +6529,31 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...@@ -6300,7 +6565,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6300,7 +6565,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
data.writeInt(1); data.writeInt(1);
data.writeString("hello"); data.writeString("hello");
proxy.sendRequest(1, data, reply, option) proxy.sendRequest(1, data, reply, option)
.then(function(result) { .then((result: rpc.SendRequestResult) => {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendRequest got result"); console.log("sendRequest got result");
result.reply.readException(); result.reply.readException();
...@@ -6309,7 +6574,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6309,7 +6574,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
} else { } else {
console.log("RPCTest: sendRequest failed, errCode: " + result.errCode); console.log("RPCTest: sendRequest failed, errCode: " + result.errCode);
} }
}).catch(function(e) { }).catch((e: Error) => {
console.log("RPCTest: sendRequest got exception: " + e.message); console.log("RPCTest: sendRequest got exception: " + e.message);
}).finally (() => { }).finally (() => {
console.log("RPCTest: sendRequest ends, reclaim parcel"); console.log("RPCTest: sendRequest ends, reclaim parcel");
...@@ -6343,42 +6608,45 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6343,42 +6608,45 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BussinessError } from '@ohos.base';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
function sendRequestCallback(result) { function sendRequestCallback(result: rpc.RequestResult) {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendRequest got result"); console.log("sendRequest got result");
result.reply.readException(); result.reply.readException();
let msg = result.reply.readString(); let msg = result.reply.readString();
console.log("RPCTest: reply msg: " + msg); console.log("RPCTest: reply msg: " + msg);
} else { } else {
console.log("RPCTest: sendRequest failed, errCode: " + result.errCode); console.log("RPCTest: sendRequest failed, errCode: " + result.errCode);
} }
console.log("RPCTest: sendRequest ends, reclaim parcel"); console.log("RPCTest: sendRequest ends, reclaim parcel");
result.data.reclaim(); result.data.reclaim();
result.reply.reclaim(); result.reply.reclaim();
} }
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...@@ -6392,8 +6660,9 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -6392,8 +6660,9 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
try { try {
proxy.sendMessageRequest(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); let e: BussinessError = error as BussinessError;
console.info("rpc send sequence request fail, errorMessage " + error.message); console.info("rpc send sequence request fail, errorCode " + e.code);
console.info("rpc send sequence request fail, errorMessage " + e.message);
} }
``` ```
...@@ -6424,42 +6693,44 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -6424,42 +6693,44 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
function sendRequestCallback(result) { function sendRequestCallback(result: rpc.SendRequestResult) {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendRequest got result"); console.log("sendRequest got result");
result.reply.readException(); result.reply.readException();
let msg = result.reply.readString(); let msg = result.reply.readString();
console.log("RPCTest: reply msg: " + msg); console.log("RPCTest: reply msg: " + msg);
} else { } else {
console.log("RPCTest: sendRequest failed, errCode: " + result.errCode); console.log("RPCTest: sendRequest failed, errCode: " + result.errCode);
} }
console.log("RPCTest: sendRequest ends, reclaim parcel"); console.log("RPCTest: sendRequest ends, reclaim parcel");
result.data.reclaim(); result.data.reclaim();
result.reply.reclaim(); result.reply.reclaim();
} }
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...@@ -6508,40 +6779,44 @@ getLocalInterface(interface: string): IRemoteBroker ...@@ -6508,40 +6779,44 @@ getLocalInterface(interface: string): IRemoteBroker
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BussinessError } from '@ohos.base';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getLocalInterface接口方法查询接口对象 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getLocalInterface接口方法查询接口对象
```ts ```ts
try { try {
let broker = proxy.getLocalInterface("testObject"); let broker: rpc.IRemoteBroker = proxy.getLocalInterface("testObject");
console.log("RpcClient: getLocalInterface is " + broker); console.log("RpcClient: getLocalInterface is " + broker);
} catch(error) { } catch(error) {
console.info("rpc get local interface fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc get local interface fail, errorMessage " + error.message); console.info("rpc get local interface fail, errorCode " + e.code);
console.info("rpc get local interface fail, errorMessage " + e.message);
} }
``` ```
...@@ -6574,35 +6849,37 @@ queryLocalInterface(interface: string): IRemoteBroker ...@@ -6574,35 +6849,37 @@ queryLocalInterface(interface: string): IRemoteBroker
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的queryLocalInterface接口获取接口对象 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的queryLocalInterface接口获取接口对象
```ts ```ts
let broker = proxy.queryLocalInterface("testObject"); let broker: rpc.IRemoteBroker = proxy.queryLocalInterface("testObject");
console.log("RpcClient: queryLocalInterface is " + broker); console.log("RpcClient: queryLocalInterface is " + broker);
``` ```
...@@ -6636,35 +6913,38 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void ...@@ -6636,35 +6913,38 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BussinessError } from '@ohos.base';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的registerDeathRecipient接口注册死亡回调 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的registerDeathRecipient接口注册死亡回调
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
...@@ -6673,8 +6953,9 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void ...@@ -6673,8 +6953,9 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
try { try {
proxy.registerDeathRecipient(deathRecipient, 0); proxy.registerDeathRecipient(deathRecipient, 0);
} catch(error) { } catch(error) {
console.info("proxy register deathRecipient fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("proxy register deathRecipient fail, errorMessage " + error.message); console.info("proxy register deathRecipient fail, errorCode " + e.code);
console.info("proxy register deathRecipient fail, errorMessage " + e.message);
} }
``` ```
...@@ -6708,35 +6989,37 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6708,35 +6989,37 @@ addDeathRecipient(recipient: DeathRecipient, flags: number): boolean
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的addDeathRecipient接口方法新增死亡回调 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的addDeathRecipient接口方法新增死亡回调
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
...@@ -6775,35 +7058,38 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void ...@@ -6775,35 +7058,38 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BussinessError } from '@ohos.base';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的unregisterDeathRecipient接口方法注销死亡回调 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的unregisterDeathRecipient接口方法注销死亡回调
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
...@@ -6813,8 +7099,9 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void ...@@ -6813,8 +7099,9 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
proxy.registerDeathRecipient(deathRecipient, 0); proxy.registerDeathRecipient(deathRecipient, 0);
proxy.unregisterDeathRecipient(deathRecipient, 0); proxy.unregisterDeathRecipient(deathRecipient, 0);
} catch(error) { } catch(error) {
console.info("proxy register deathRecipient fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("proxy register deathRecipient fail, errorMessage " + error.message); console.info("proxy register deathRecipient fail, errorCode " + e.code);
console.info("proxy register deathRecipient fail, errorMessage " + e.message);
} }
``` ```
...@@ -6848,35 +7135,37 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean ...@@ -6848,35 +7135,37 @@ removeDeathRecipient(recipient: DeathRecipient, flags: number): boolean
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的removeDeathRecipient接口方法去注册死亡回调 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的removeDeathRecipient接口方法去注册死亡回调
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
...@@ -6916,39 +7205,43 @@ getDescriptor(): string ...@@ -6916,39 +7205,43 @@ getDescriptor(): string
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BussinessError } from '@ohos.base';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getDescriptor接口方法获取对象的接口描述符 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getDescriptor接口方法获取对象的接口描述符
```ts ```ts
try { try {
let descriptor = proxy.getDescriptor(); let descriptor: string = proxy.getDescriptor();
console.log("RpcClient: descriptor is " + descriptor); console.log("RpcClient: descriptor is " + descriptor);
} catch(error) { } catch(error) {
console.info("rpc get interface descriptor fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc get interface descriptor fail, errorMessage " + error.message); console.info("rpc get interface descriptor fail, errorCode " + e.code);
console.info("rpc get interface descriptor fail, errorMessage " + e.message);
} }
``` ```
...@@ -6975,35 +7268,37 @@ getInterfaceDescriptor(): string ...@@ -6975,35 +7268,37 @@ getInterfaceDescriptor(): string
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getInterfaceDescriptor接口方法查询当前代理对象接口的描述符 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getInterfaceDescriptor接口方法查询当前代理对象接口的描述符
```ts ```ts
let descriptor = proxy.getInterfaceDescriptor(); let descriptor: string = proxy.getInterfaceDescriptor();
console.log("RpcClient: descriptor is " + descriptor); console.log("RpcClient: descriptor is " + descriptor);
``` ```
...@@ -7028,35 +7323,37 @@ isObjectDead(): boolean ...@@ -7028,35 +7323,37 @@ isObjectDead(): boolean
```ts ```ts
// 仅FA模型需要导入@ohos.ability.featureAbility // 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility"; // import FA from "@ohos.ability.featureAbility";
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
let proxy; let proxy: rpc.RemoteProxy;
let connect = { let connect: common.ConnectOptions = {
onConnect: function(elementName, remoteProxy) { onConnect: (elementName, remoteProxy: rpc.RemoteProxy) => {
console.log("RpcClient: js onConnect called."); console.log("RpcClient: js onConnect called.");
proxy = remoteProxy; proxy = remoteProxy;
}, },
onDisconnect: function(elementName) { onDisconnect: (elementName) => {
console.log("RpcClient: onDisconnect"); console.log("RpcClient: onDisconnect");
}, },
onFailed: function() { onFailed: () => {
console.log("RpcClient: onFailed"); console.log("RpcClient: onFailed");
} }
}; };
let want = { let want: Want = {
"bundleName": "com.ohos.server", bundleName: "com.ohos.server",
"abilityName": "com.ohos.server.EntryAbility", abilityName: "com.ohos.server.EntryAbility",
}; };
// FA模型使用此方法连接服务 // FA模型使用此方法连接服务
// FA.connectAbility(want,connect); // FA.connectAbility(want,connect);
globalThis.context.connectServiceExtensionAbility(want, connect); this.context.connectServiceExtensionAbility(want, connect);
``` ```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的isObjectDead接口方法判断当前对象是否已经死亡 上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的isObjectDead接口方法判断当前对象是否已经死亡
```ts ```ts
let isDead = proxy.isObjectDead(); let isDead: boolean = proxy.isObjectDead();
console.log("RpcClient: isObjectDead is " + isDead); console.log("RpcClient: isObjectDead is " + isDead);
``` ```
...@@ -7091,7 +7388,7 @@ MessageOption构造函数。 ...@@ -7091,7 +7388,7 @@ MessageOption构造函数。
```ts ```ts
class TestRemoteObject extends rpc.MessageOption { class TestRemoteObject extends rpc.MessageOption {
constructor(async) { constructor(async: boolean) {
super(async); super(async);
} }
} }
...@@ -7116,7 +7413,7 @@ MessageOption构造函数。 ...@@ -7116,7 +7413,7 @@ MessageOption构造函数。
```ts ```ts
class TestRemoteObject extends rpc.MessageOption { class TestRemoteObject extends rpc.MessageOption {
constructor(syncFlags,waitTime) { constructor(syncFlags?: number,waitTime?: number) {
super(syncFlags,waitTime); super(syncFlags,waitTime);
} }
} }
...@@ -7316,7 +7613,7 @@ static getCallingPid(): number ...@@ -7316,7 +7613,7 @@ static getCallingPid(): number
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let callerPid = rpc.IPCSkeleton.getCallingPid(); let callerPid = rpc.IPCSkeleton.getCallingPid();
console.log("RpcServer: getCallingPid result: " + callerPid); console.log("RpcServer: getCallingPid result: " + callerPid);
return true; return true;
...@@ -7342,7 +7639,7 @@ static getCallingUid(): number ...@@ -7342,7 +7639,7 @@ static getCallingUid(): number
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let callerUid = rpc.IPCSkeleton.getCallingUid(); let callerUid = rpc.IPCSkeleton.getCallingUid();
console.log("RpcServer: getCallingUid result: " + callerUid); console.log("RpcServer: getCallingUid result: " + callerUid);
return true; return true;
...@@ -7368,7 +7665,7 @@ static getCallingTokenId(): number; ...@@ -7368,7 +7665,7 @@ static getCallingTokenId(): number;
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let callerTokenId = rpc.IPCSkeleton.getCallingTokenId(); let callerTokenId = rpc.IPCSkeleton.getCallingTokenId();
console.log("RpcServer: getCallingTokenId result: " + callerTokenId); console.log("RpcServer: getCallingTokenId result: " + callerTokenId);
return true; return true;
...@@ -7394,7 +7691,7 @@ static getCallingDeviceID(): string ...@@ -7394,7 +7691,7 @@ static getCallingDeviceID(): string
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let callerDeviceID = rpc.IPCSkeleton.getCallingDeviceID(); let callerDeviceID = rpc.IPCSkeleton.getCallingDeviceID();
console.log("RpcServer: callerDeviceID is: " + callerDeviceID); console.log("RpcServer: callerDeviceID is: " + callerDeviceID);
return true; return true;
...@@ -7420,7 +7717,7 @@ static getLocalDeviceID(): string ...@@ -7420,7 +7717,7 @@ static getLocalDeviceID(): string
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let localDeviceID = rpc.IPCSkeleton.getLocalDeviceID(); let localDeviceID = rpc.IPCSkeleton.getLocalDeviceID();
console.log("RpcServer: localDeviceID is: " + localDeviceID); console.log("RpcServer: localDeviceID is: " + localDeviceID);
return true; return true;
...@@ -7446,7 +7743,7 @@ static isLocalCalling(): boolean ...@@ -7446,7 +7743,7 @@ static isLocalCalling(): boolean
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let isLocalCalling = rpc.IPCSkeleton.isLocalCalling(); let isLocalCalling = rpc.IPCSkeleton.isLocalCalling();
console.log("RpcServer: isLocalCalling is: " + isLocalCalling); console.log("RpcServer: isLocalCalling is: " + isLocalCalling);
return true; return true;
...@@ -7471,8 +7768,10 @@ static flushCmdBuffer(object: IRemoteObject): void ...@@ -7471,8 +7768,10 @@ static flushCmdBuffer(object: IRemoteObject): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
} }
...@@ -7480,8 +7779,9 @@ static flushCmdBuffer(object: IRemoteObject): void ...@@ -7480,8 +7779,9 @@ static flushCmdBuffer(object: IRemoteObject): void
try { try {
rpc.IPCSkeleton.flushCmdBuffer(remoteObject); rpc.IPCSkeleton.flushCmdBuffer(remoteObject);
} catch(error) { } catch(error) {
console.info("proxy set calling identity fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("proxy set calling identity fail, errorMessage " + error.message); console.info("proxy set calling identity fail, errorCode " + e.code);
console.info("proxy set calling identity fail, errorMessage " + e.message);
} }
``` ```
...@@ -7510,13 +7810,13 @@ static flushCommands(object: IRemoteObject): number ...@@ -7510,13 +7810,13 @@ static flushCommands(object: IRemoteObject): number
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -7552,7 +7852,7 @@ static resetCallingIdentity(): string ...@@ -7552,7 +7852,7 @@ static resetCallingIdentity(): string
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let callingIdentity = rpc.IPCSkeleton.resetCallingIdentity(); let callingIdentity = rpc.IPCSkeleton.resetCallingIdentity();
console.log("RpcServer: callingIdentity is: " + callingIdentity); console.log("RpcServer: callingIdentity is: " + callingIdentity);
return true; return true;
...@@ -7578,8 +7878,8 @@ static restoreCallingIdentity(identity: string): void ...@@ -7578,8 +7878,8 @@ static restoreCallingIdentity(identity: string): void
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let callingIdentity = null; let callingIdentity: rpc.IPCSkeleton;
try { try {
callingIdentity = rpc.IPCSkeleton.resetCallingIdentity(); callingIdentity = rpc.IPCSkeleton.resetCallingIdentity();
console.log("RpcServer: callingIdentity is: " + callingIdentity); console.log("RpcServer: callingIdentity is: " + callingIdentity);
...@@ -7617,8 +7917,8 @@ static setCallingIdentity(identity: string): boolean ...@@ -7617,8 +7917,8 @@ static setCallingIdentity(identity: string): boolean
```ts ```ts
class Stub extends rpc.RemoteObject { class Stub extends rpc.RemoteObject {
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
let callingIdentity = null; let callingIdentity: rpc.IPCSkeleton;
try { try {
callingIdentity = rpc.IPCSkeleton.resetCallingIdentity(); callingIdentity = rpc.IPCSkeleton.resetCallingIdentity();
console.log("RpcServer: callingIdentity is: " + callingIdentity); console.log("RpcServer: callingIdentity is: " + callingIdentity);
...@@ -7677,13 +7977,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -7677,13 +7977,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -7743,13 +8043,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -7743,13 +8043,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -7769,7 +8069,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -7769,7 +8069,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
data.writeInt(1); data.writeInt(1);
data.writeString("hello"); data.writeString("hello");
testRemoteObject.sendRequest(1, data, reply, option) testRemoteObject.sendRequest(1, data, reply, option)
.then(function(result) { .then((result: rpc.SendRequestResult) => {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendRequest got result"); console.log("sendRequest got result");
result.reply.readException(); result.reply.readException();
...@@ -7778,7 +8078,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -7778,7 +8078,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
} else { } else {
console.log("RPCTest: sendRequest failed, errCode: " + result.errCode); console.log("RPCTest: sendRequest failed, errCode: " + result.errCode);
} }
}).catch(function(e) { }).catch((e: Error) => {
console.log("RPCTest: sendRequest got exception: " + e.message); console.log("RPCTest: sendRequest got exception: " + e.message);
}).finally (() => { }).finally (() => {
console.log("RPCTest: sendRequest ends, reclaim parcel"); console.log("RPCTest: sendRequest ends, reclaim parcel");
...@@ -7814,7 +8114,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -7814,7 +8114,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
} }
...@@ -7825,7 +8125,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -7825,7 +8125,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
data.writeInt(1); data.writeInt(1);
data.writeString("hello"); data.writeString("hello");
testRemoteObject.sendMessageRequest(1, data, reply, option) testRemoteObject.sendMessageRequest(1, data, reply, option)
.then(function(result) { .then((result: rpc.RequestResult) => {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendMessageRequest got result"); console.log("sendMessageRequest got result");
result.reply.readException(); result.reply.readException();
...@@ -7834,7 +8134,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -7834,7 +8134,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
} else { } else {
console.log("RPCTest: sendMessageRequest failed, errCode: " + result.errCode); console.log("RPCTest: sendMessageRequest failed, errCode: " + result.errCode);
} }
}).catch(function(e) { }).catch((e: Error) => {
console.log("RPCTest: sendMessageRequest got exception: " + e.message); console.log("RPCTest: sendMessageRequest got exception: " + e.message);
}).finally (() => { }).finally (() => {
console.log("RPCTest: sendMessageRequest ends, reclaim parcel"); console.log("RPCTest: sendMessageRequest ends, reclaim parcel");
...@@ -7865,11 +8165,11 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence, ...@@ -7865,11 +8165,11 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
} }
function sendRequestCallback(result) { function sendRequestCallback(result: rpc.RequestResult) {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendRequest got result"); console.log("sendRequest got result");
result.reply.readException(); result.reply.readException();
...@@ -7914,13 +8214,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -7914,13 +8214,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -7933,7 +8233,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me ...@@ -7933,7 +8233,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
return false; return false;
} }
} }
function sendRequestCallback(result) { function sendRequestCallback(result: rpc.SendRequestResult) {
if (result.errCode === 0) { if (result.errCode === 0) {
console.log("sendRequest got result"); console.log("sendRequest got result");
result.reply.readException(); result.reply.readException();
...@@ -7983,13 +8283,13 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里处理 ...@@ -7983,13 +8283,13 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里处理
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -8001,7 +8301,7 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里处理 ...@@ -8001,7 +8301,7 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里处理
isObjectDead(): boolean { isObjectDead(): boolean {
return false; return false;
} }
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
if (code === 1) { if (code === 1) {
console.log("RpcServer: onRemoteRequest called"); console.log("RpcServer: onRemoteRequest called");
return true; return true;
...@@ -8046,11 +8346,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步 ...@@ -8046,11 +8346,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
if (code === 1) { if (code === 1) {
console.log("RpcServer: sync onRemoteMessageRequest is called"); console.log("RpcServer: sync onRemoteMessageRequest is called");
return true; return true;
...@@ -8066,18 +8366,18 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步 ...@@ -8066,18 +8366,18 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
async onRemoteMessageRequest(code, data, reply, option) { async onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
if (code === 1) { if (code === 1) {
console.log("RpcServer: async onRemoteMessageRequest is called"); console.log("RpcServer: async onRemoteMessageRequest is called");
} else { } else {
console.log("RpcServer: unknown code: " + code); console.log("RpcServer: unknown code: " + code);
return false; return false;
} }
await new Promise((resolve) => { await new Promise((resolve: (data: rpc.RequestResult) =>void) => {
setTimeout(resolve, 100); setTimeout(resolve, 100);
}) })
return true; return true;
...@@ -8089,11 +8389,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步 ...@@ -8089,11 +8389,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
if (code === 1) { if (code === 1) {
console.log("RpcServer: sync onRemoteMessageRequest is called"); console.log("RpcServer: sync onRemoteMessageRequest is called");
return true; return true;
...@@ -8103,7 +8403,7 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步 ...@@ -8103,7 +8403,7 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
} }
} }
// 同时调用仅会执行onRemoteMessageRequest // 同时调用仅会执行onRemoteMessageRequest
onRemoteMessageRequest(code, data, reply, option) { onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
if (code === 1) { if (code === 1) {
console.log("RpcServer: async onRemoteMessageRequest is called"); console.log("RpcServer: async onRemoteMessageRequest is called");
} else { } else {
...@@ -8120,11 +8420,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步 ...@@ -8120,11 +8420,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code: number, data: rpc.MessageParcel, reply: rpc.MessageParcel, option: rpc.MessageOption): boolean {
if (code === 1) { if (code === 1) {
console.log("RpcServer: sync onRemoteRequest is called"); console.log("RpcServer: sync onRemoteRequest is called");
return true; return true;
...@@ -8134,14 +8434,14 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步 ...@@ -8134,14 +8434,14 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
} }
} }
// 同时调用仅会执行onRemoteMessageRequest // 同时调用仅会执行onRemoteMessageRequest
async onRemoteMessageRequest(code, data, reply, option) { async onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option: rpc.MessageOption): boolean | Promise<boolean> {
if (code === 1) { if (code === 1) {
console.log("RpcServer: async onRemoteMessageRequest is called"); console.log("RpcServer: async onRemoteMessageRequest is called");
} else { } else {
console.log("RpcServer: unknown code: " + code); console.log("RpcServer: unknown code: " + code);
return false; return false;
} }
await new Promise((resolve) => { await new Promise((resolve: (data: rpc.RequestResult) =>void) => {
setTimeout(resolve, 100); setTimeout(resolve, 100);
}) })
return true; return true;
...@@ -8166,7 +8466,7 @@ getCallingUid(): number ...@@ -8166,7 +8466,7 @@ getCallingUid(): number
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
} }
...@@ -8192,7 +8492,7 @@ getCallingPid(): number ...@@ -8192,7 +8492,7 @@ getCallingPid(): number
```ts ```ts
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
} }
...@@ -8223,13 +8523,15 @@ getLocalInterface(descriptor: string): IRemoteBroker ...@@ -8223,13 +8523,15 @@ getLocalInterface(descriptor: string): IRemoteBroker
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { import { BussinessError } from '@ohos.base';
class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
registerDeathRecipient(recipient: MyDeathRecipient, flags: number) { registerDeathRecipient(recipient: MyDeathRecipient, flags: number) {
...@@ -8246,8 +8548,9 @@ getLocalInterface(descriptor: string): IRemoteBroker ...@@ -8246,8 +8548,9 @@ getLocalInterface(descriptor: string): IRemoteBroker
try { try {
let broker = testRemoteObject.getLocalInterface("testObject"); let broker = testRemoteObject.getLocalInterface("testObject");
} catch(error) { } catch(error) {
console.info("rpc get local interface fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc get local interface fail, errorMessage " + error.message); console.info("rpc get local interface fail, errorCode " + e.code);
console.info("rpc get local interface fail, errorMessage " + e.message);
} }
``` ```
...@@ -8276,13 +8579,13 @@ queryLocalInterface(descriptor: string): IRemoteBroker ...@@ -8276,13 +8579,13 @@ queryLocalInterface(descriptor: string): IRemoteBroker
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -8324,13 +8627,15 @@ getDescriptor(): string ...@@ -8324,13 +8627,15 @@ getDescriptor(): string
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { import { BussinessError } from '@ohos.base';
class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
registerDeathRecipient(recipient: MyDeathRecipient, flags: number) { registerDeathRecipient(recipient: MyDeathRecipient, flags: number) {
...@@ -8348,8 +8653,9 @@ getDescriptor(): string ...@@ -8348,8 +8653,9 @@ getDescriptor(): string
try { try {
let descriptor = testRemoteObject.getDescriptor(); let descriptor = testRemoteObject.getDescriptor();
} catch(error) { } catch(error) {
console.info("rpc get local interface fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("rpc get local interface fail, errorMessage " + error.message); console.info("rpc get local interface fail, errorCode " + e.code);
console.info("rpc get local interface fail, errorMessage " + e.message);
} }
``` ```
...@@ -8372,13 +8678,13 @@ getInterfaceDescriptor(): string ...@@ -8372,13 +8678,13 @@ getInterfaceDescriptor(): string
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
} }
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean { addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
...@@ -8414,19 +8720,22 @@ modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void ...@@ -8414,19 +8720,22 @@ modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { import { BussinessError } from '@ohos.base';
class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
try { try {
this.modifyLocalInterface(this, descriptor); this.modifyLocalInterface(this, descriptor);
} catch(error) { } catch(error) {
console.info(" rpc attach local interface fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info(" rpc attach local interface fail, errorMessage " + error.message); console.info(" rpc attach local interface fail, errorCode " + e.code);
console.info(" rpc attach local interface fail, errorMessage " + e.message);
} }
} }
registerDeathRecipient(recipient: MyDeathRecipient, flags: number) { registerDeathRecipient(recipient: MyDeathRecipient, flags: number) {
...@@ -8465,13 +8774,13 @@ attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void ...@@ -8465,13 +8774,13 @@ attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
**示例:** **示例:**
```ts ```ts
class MyDeathRecipient { class MyDeathRecipient implements rpc.DeathRecipient {
onRemoteDied() { onRemoteDied() {
console.log("server died"); console.log("server died");
} }
} }
class TestRemoteObject extends rpc.RemoteObject { class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) { constructor(descriptor: string) {
super(descriptor); super(descriptor);
this.attachLocalInterface(this, descriptor); this.attachLocalInterface(this, descriptor);
} }
...@@ -8530,15 +8839,18 @@ static create(name: string, size: number): Ashmem ...@@ -8530,15 +8839,18 @@ static create(name: string, size: number): Ashmem
**示例:** **示例:**
```ts ```ts
let ashmem; import { BussinessError } from '@ohos.base';
let ashmem: rpc.Ashmem;
try { try {
ashmem = rpc.Ashmem.create("ashmem", 1024*1024); ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
let size = ashmem.getAshmemSize();
console.log("RpcTest: get ashemm by create : " + ashmem + " size is : " + size);
} catch(error) { } catch(error) {
console.info("Rpc creat ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc creat ashmem fail, errorMessage " + error.message); console.info("Rpc creat ashmem fail, errorCode " + e.code);
console.info("Rpc creat ashmem fail, errorMessage " + e.message);
} }
let size = ashmem.getAshmemSize();
console.log("RpcTest: get ashemm by create : " + ashmem + " size is : " + size);
``` ```
### createAshmem<sup>8+(deprecated)</sup> ### createAshmem<sup>8+(deprecated)</sup>
...@@ -8595,16 +8907,18 @@ static create(ashmem: Ashmem): Ashmem ...@@ -8595,16 +8907,18 @@ static create(ashmem: Ashmem): Ashmem
**示例:** **示例:**
```ts ```ts
let ashmem2; import { BussinessError } from '@ohos.base';
let ashmem2: rpc.Ashmem;
try { try {
let ashmem = rpc.Ashmem.create("ashmem", 1024*1024); let ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
let ashmem2 = rpc.Ashmem.create(ashmem); let ashmem2 = rpc.Ashmem.create(ashmem);
let size = ashmem2.getAshmemSize();
console.log("RpcTest: get ashemm by create : " + ashmem2 + " size is : " + size);
} catch(error) { } catch(error) {
console.info("Rpc creat ashmem from existing fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc creat ashmem from existing fail, errorMessage " + error.message); console.info("Rpc creat ashmem from existing fail, errorCode " + e.code);
console.info("Rpc creat ashmem from existing fail, errorMessage " + e.message);
} }
let size = ashmem2.getAshmemSize();
console.log("RpcTest: get ashemm by create : " + ashmem2 + " size is : " + size);
``` ```
### createAshmemFromExisting<sup>8+(deprecated)</sup> ### createAshmemFromExisting<sup>8+(deprecated)</sup>
...@@ -8715,12 +9029,15 @@ mapTypedAshmem(mapType: number): void ...@@ -8715,12 +9029,15 @@ mapTypedAshmem(mapType: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let ashmem = rpc.Ashmem.create("ashmem", 1024*1024); let ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
try { try {
ashmem.mapTypedAshmem(ashmem.PROT_READ | ashmem.PROT_WRITE); ashmem.mapTypedAshmem(ashmem.PROT_READ | ashmem.PROT_WRITE);
} catch(error) { } catch(error) {
console.info("Rpc map ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc map ashmem fail, errorMessage " + error.message); console.info("Rpc map ashmem fail, errorCode " + e.code);
console.info("Rpc map ashmem fail, errorMessage " + e.message);
} }
``` ```
...@@ -8773,12 +9090,15 @@ mapReadWriteAshmem(): void ...@@ -8773,12 +9090,15 @@ mapReadWriteAshmem(): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let ashmem = rpc.Ashmem.create("ashmem", 1024*1024); let ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
try { try {
ashmem.mapReadWriteAshmem(); ashmem.mapReadWriteAshmem();
} catch(error) { } catch(error) {
console.info("Rpc map read and write ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc map read and write ashmem fail, errorMessage " + error.message); console.info("Rpc map read and write ashmem fail, errorCode " + e.code);
console.info("Rpc map read and write ashmem fail, errorMessage " + e.message);
} }
``` ```
...@@ -8825,12 +9145,15 @@ mapReadonlyAshmem(): void ...@@ -8825,12 +9145,15 @@ mapReadonlyAshmem(): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let ashmem = rpc.Ashmem.create("ashmem", 1024*1024); let ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
try { try {
ashmem.mapReadonlyAshmem(); ashmem.mapReadonlyAshmem();
} catch(error) { } catch(error) {
console.info("Rpc map read and write ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc map read and write ashmem fail, errorMessage " + error.message); console.info("Rpc map read and write ashmem fail, errorCode " + e.code);
console.info("Rpc map read and write ashmem fail, errorMessage " + e.message);
} }
``` ```
...@@ -8883,12 +9206,15 @@ setProtectionType(protectionType: number): void ...@@ -8883,12 +9206,15 @@ setProtectionType(protectionType: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let ashmem = rpc.Ashmem.create("ashmem", 1024*1024); let ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
try { try {
ashmem.setProtection(ashmem.PROT_READ); ashmem.setProtection(ashmem.PROT_READ);
} catch(error) { } catch(error) {
console.info("Rpc set protection type fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc set protection type fail, errorMessage " + error.message); console.info("Rpc set protection type fail, errorCode " + e.code);
console.info("Rpc set protection type fail, errorMessage " + e.message);
} }
``` ```
...@@ -8949,14 +9275,17 @@ writeAshmem(buf: number[], size: number, offset: number): void ...@@ -8949,14 +9275,17 @@ writeAshmem(buf: number[], size: number, offset: number): void
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let ashmem = rpc.Ashmem.create("ashmem", 1024*1024); let ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
ashmem.mapReadWriteAshmem(); ashmem.mapReadWriteAshmem();
var ByteArrayVar = [1, 2, 3, 4, 5]; let ByteArrayVar = [1, 2, 3, 4, 5];
try { try {
ashmem.writeAshmem(ByteArrayVar, 5, 0); ashmem.writeAshmem(ByteArrayVar, 5, 0);
} catch(error) { } catch(error) {
console.info("Rpc write to ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc write to ashmem fail, errorMessage " + error.message); console.info("Rpc write to ashmem fail, errorCode " + e.code);
console.info("Rpc write to ashmem fail, errorMessage " + e.message);
} }
``` ```
...@@ -8990,7 +9319,7 @@ writeToAshmem(buf: number[], size: number, offset: number): boolean ...@@ -8990,7 +9319,7 @@ writeToAshmem(buf: number[], size: number, offset: number): boolean
let ashmem = rpc.Ashmem.createAshmem("ashmem", 1024*1024); let ashmem = rpc.Ashmem.createAshmem("ashmem", 1024*1024);
let mapResult = ashmem.mapReadAndWriteAshmem(); let mapResult = ashmem.mapReadAndWriteAshmem();
console.info("RpcTest map ashmem result is " + mapResult); console.info("RpcTest map ashmem result is " + mapResult);
var ByteArrayVar = [1, 2, 3, 4, 5]; let ByteArrayVar = [1, 2, 3, 4, 5];
let writeResult = ashmem.writeToAshmem(ByteArrayVar, 5, 0); let writeResult = ashmem.writeToAshmem(ByteArrayVar, 5, 0);
console.log("RpcTest: write to Ashmem result is : " + writeResult); console.log("RpcTest: write to Ashmem result is : " + writeResult);
``` ```
...@@ -9027,16 +9356,19 @@ readAshmem(size: number, offset: number): number[] ...@@ -9027,16 +9356,19 @@ readAshmem(size: number, offset: number): number[]
**示例:** **示例:**
```ts ```ts
import { BussinessError } from '@ohos.base';
let ashmem = rpc.Ashmem.create("ashmem", 1024*1024); let ashmem = rpc.Ashmem.create("ashmem", 1024*1024);
ashmem.mapReadWriteAshmem(); ashmem.mapReadWriteAshmem();
var ByteArrayVar = [1, 2, 3, 4, 5]; let ByteArrayVar = [1, 2, 3, 4, 5];
ashmem.writeAshmem(ByteArrayVar, 5, 0); ashmem.writeAshmem(ByteArrayVar, 5, 0);
try { try {
let readResult = ashmem.readAshmem(5, 0); let readResult = ashmem.readAshmem(5, 0);
console.log("RpcTest: read from Ashmem result is : " + readResult); console.log("RpcTest: read from Ashmem result is : " + readResult);
} catch(error) { } catch(error) {
console.info("Rpc read from ashmem fail, errorCode " + error.code); let e: BussinessError = error as BussinessError;
console.info("Rpc read from ashmem fail, errorMessage " + error.message); console.info("Rpc read from ashmem fail, errorCode " + e.code);
console.info("Rpc read from ashmem fail, errorMessage " + e.message);
} }
``` ```
...@@ -9069,7 +9401,7 @@ readFromAshmem(size: number, offset: number): number[] ...@@ -9069,7 +9401,7 @@ readFromAshmem(size: number, offset: number): number[]
let ashmem = rpc.Ashmem.createAshmem("ashmem", 1024*1024); let ashmem = rpc.Ashmem.createAshmem("ashmem", 1024*1024);
let mapResult = ashmem.mapReadAndWriteAshmem(); let mapResult = ashmem.mapReadAndWriteAshmem();
console.info("RpcTest map ashmem result is " + mapResult); console.info("RpcTest map ashmem result is " + mapResult);
var ByteArrayVar = [1, 2, 3, 4, 5]; let ByteArrayVar = [1, 2, 3, 4, 5];
let writeResult = ashmem.writeToAshmem(ByteArrayVar, 5, 0); let writeResult = ashmem.writeToAshmem(ByteArrayVar, 5, 0);
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);
...@@ -9079,19 +9411,22 @@ readFromAshmem(size: number, offset: number): number[] ...@@ -9079,19 +9411,22 @@ readFromAshmem(size: number, offset: number): number[]
## 获取context ## 获取context
**示例:** **示例:**
此处只介绍一种获取context的方式,更多获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)
```ts ```ts
import Ability from '@ohos.app.ability.UIAbility'; import Ability from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import window from '@ohos.window';
export default class MainAbility extends Ability { export default class MainAbility extends Ability {
onCreate(want, launchParam) { onCreate(want Want, launchParam: AbilityConstant.LaunchParam) {
console.log("[Demo] MainAbility onCreate"); console.log("[Demo] MainAbility onCreate");
globalThis.context = this.context; let context = this.context;
} }
onDestroy() { onDestroy() {
console.log("[Demo] MainAbility onDestroy"); console.log("[Demo] MainAbility onDestroy");
} }
onWindowStageCreate(windowStage) { onWindowStageCreate(windowStage: window.WindowStage) {
// Main window is created, set main page for this ability // Main window is created, set main page for this ability
console.log("[Demo] MainAbility onWindowStageCreate"); console.log("[Demo] MainAbility onWindowStageCreate");
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册