Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
234bee6a
D
Docs
项目概览
OpenHarmony
/
Docs
接近 2 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
234bee6a
编写于
8月 31, 2023
作者:
O
openharmony_ci
提交者:
Gitee
8月 31, 2023
浏览文件
操作
浏览文件
下载
差异文件
!23448 ArkTS整改
Merge pull request !23448 from Lixiaoying25/master
上级
5a2c81b7
61413a3b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
1040 addition
and
682 deletion
+1040
-682
zh-cn/application-dev/connectivity/ipc-rpc-development-guideline.md
...ication-dev/connectivity/ipc-rpc-development-guideline.md
+56
-43
zh-cn/application-dev/connectivity/subscribe-remote-state.md
zh-cn/application-dev/connectivity/subscribe-remote-state.md
+26
-16
zh-cn/application-dev/reference/apis/js-apis-rpc.md
zh-cn/application-dev/reference/apis/js-apis-rpc.md
+958
-623
未找到文件。
zh-cn/application-dev/connectivity/ipc-rpc-development-guideline.md
浏览文件 @
234bee6a
...
...
@@ -180,7 +180,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
1.
添加依赖
```
ts
import
rpc
from
"
@ohos.rpc
"
;
import
rpc
from
'
@ohos.rpc
'
;
// 仅FA模型需要导入@ohos.ability.featureAbility
// import featureAbility from "@ohos.ability.featureAbility";
```
...
...
@@ -188,17 +188,20 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
Stage模型需要获取context
```
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
,
l
aunchParam
)
{
export
default
class
MainAbility
extends
UI
Ability
{
onCreate
(
want
:
Want
,
launchParam
:
AbilityConstant
.
L
aunchParam
)
{
console
.
log
(
"
[Demo] MainAbility onCreate
"
);
globalThis
.
context
=
this
.
context
;
let
context
=
this
.
context
;
}
onDestroy
()
{
console
.
log
(
"
[Demo] MainAbility onDestroy
"
);
}
onWindowStageCreate
(
windowStage
)
{
onWindowStageCreate
(
windowStage
:
window
.
WindowStage
)
{
// Main window is created, set main page for this ability
console
.
log
(
"
[Demo] MainAbility onWindowStageCreate
"
);
}
...
...
@@ -222,53 +225,62 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
首先,构造变量want,指定要绑定的Ability所在应用的包名、组件名,如果是跨设备的场景,还需要绑定目标设备NetworkId(组网场景下对应设备的标识符,可以使用deviceManager获取目标设备的NetworkId);然后,构造变量connect,指定绑定成功、绑定失败、断开连接时的回调函数;最后,FA模型使用featureAbility提供的接口绑定Ability,Stage模型通过context获取服务后用提供的接口绑定Ability。
```
ts
import
rpc
from
"
@ohos.rpc
"
;
// 仅FA模型需要导入@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
connectId
=
null
;
let
proxy
:
rpc
.
RemoteProxy
;
let
connectId
:
number
;
// 单个设备绑定Ability
let
want
=
{
let
want
:
Want
=
{
// 包名和组件名写实际的值
"
bundleName
"
:
"
ohos.rpc.test.server
"
,
"
abilityName
"
:
"
ohos.rpc.test.server.ServiceAbility
"
,
bundleName
:
"
ohos.rpc.test.server
"
,
abilityName
:
"
ohos.rpc.test.server.ServiceAbility
"
,
};
let
connect
=
{
onConnect
:
function
(
elementName
,
remote
)
{
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remote
:
rpc
.
RemoteProxy
)
=>
{
proxy
=
remote
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
},
onFailed
:
function
()
{
proxy
=
null
;
onFailed
:
()
=>
{
proxy
;
}
};
// FA模型使用此方法连接服务
// connectId = featureAbility.connectAbility(want, connect);
connectId
=
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
connectId
=
t
his
.
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
.
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互相通信,
```
ts
onConnect
(
want
:
Want
)
{
var
robj
:
rpc
.
RemoteObject
=
new
Stub
(
"
rpcTestAbility
"
);
const
robj
:
rpc
.
RemoteObject
=
new
Stub
(
"
rpcTestAbility
"
);
return
robj
;
}
class
Stub
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
onRemoteMessageRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteMessageRequest
(
code
:
number
,
data
:
rpc
.
MessageSequence
,
reply
:
rpc
.
MessageSequence
,
option
:
rpc
.
MessageOption
):
boolean
|
Promise
<
boolean
>
{
// 根据code处理客户端的请求
return
true
;
}
...
...
@@ -297,20 +309,21 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
客户端在onConnect回调里接收到代理对象,调用sendRequest方法发起请求,在期约(JavaScript期约:用于表示一个异步操作的最终完成或失败及其结果值)或者回调函数里接收结果。
```
ts
import
rpc
from
'
@ohos.rpc
'
;
// 使用期约
let
option
=
new
rpc
.
MessageOption
();
let
data
=
rpc
.
MessageParcel
.
create
();
let
reply
=
rpc
.
MessageParcel
.
create
();
// 往data里写入参数
proxy
.
sendRequest
(
1
,
data
,
reply
,
option
)
.
then
(
function
(
result
)
{
.
then
(
(
result
:
rpc
.
SendRequestResult
)
=>
{
if
(
result
.
errCode
!=
0
)
{
console
.
error
(
"
send request failed, errCode:
"
+
result
.
errCode
);
return
;
}
// 从result.reply里读取结果
})
.
catch
(
function
(
e
)
{
.
catch
(
(
e
:
Error
)
=>
{
console
.
error
(
"
send request got exception:
"
+
e
);
})
.
finally
(()
=>
{
...
...
@@ -319,7 +332,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
})
// 使用回调函数
function
sendRequestCallback
(
result
)
{
function
sendRequestCallback
(
result
:
rpc
.
SendRequestResult
)
{
try
{
if
(
result
.
errCode
!=
0
)
{
console
.
error
(
"
send request failed, errCode:
"
+
result
.
errCode
);
...
...
@@ -352,7 +365,7 @@ IPC/RPC的主要工作是让运行在不同进程的Proxy和Stub互相通信,
// FA模型使用此方法断开连接
// featureAbility.disconnectAbility(connectId, disconnectCallback);
globalT
his
.
context
.
disconnectServiceExtensionAbility
(
connectId
);
t
his
.
context
.
disconnectServiceExtensionAbility
(
connectId
);
```
## 相关实例
...
...
zh-cn/application-dev/connectivity/subscribe-remote-state.md
浏览文件 @
234bee6a
...
...
@@ -93,17 +93,21 @@ result = object->RemoveDeathRecipient(deathRecipient); // 移除消亡通知
Stage模型在连接服务前需要先获取context
```
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
"
);
globalThis
.
context
=
this
.
context
;
let
context
=
this
.
context
;
}
onDestroy
()
{
console
.
log
(
"
[Demo] MainAbility onDestroy
"
);
}
onWindowStageCreate
(
windowStage
)
{
onWindowStageCreate
(
windowStage
:
window
.
WindowStage
)
{
// Main window is created, set main page for this ability
console
.
log
(
"
[Demo] MainAbility onWindowStageCreate
"
);
}
...
...
@@ -127,36 +131,42 @@ export default class MainAbility extends Ability {
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型通过此方法连接服务
// 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
()
{
console
.
log
(
"
server died
"
);
}
}
let
deathRecipient
=
new
MyDeathRecipient
();
proxy
.
registerDeathRecip
p
ient
(
deathRecipient
,
0
);
proxy
.
registerDeathRecipient
(
deathRecipient
,
0
);
proxy
.
unregisterDeathRecipient
(
deathRecipient
,
0
);
```
...
...
zh-cn/application-dev/reference/apis/js-apis-rpc.md
浏览文件 @
234bee6a
...
...
@@ -104,8 +104,10 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
}
...
...
@@ -114,8 +116,9 @@ writeRemoteObject(object: [IRemoteObject](#iremoteobject)): void
try
{
data
.
writeRemoteObject
(
testRemoteObject
);
}
catch
(
error
)
{
console
.
info
(
"
Rpc write remote object fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc write remote object fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
}
...
...
@@ -156,8 +161,9 @@ readRemoteObject(): IRemoteObject
data
.
writeRemoteObject
(
testRemoteObject
);
let
proxy
=
data
.
readRemoteObject
();
}
catch
(
error
)
{
console
.
info
(
"
Rpc write remote object fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc write remote object fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeInterfaceToken
(
"
aaa
"
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write interface fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write interface fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write interface fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write interface fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -220,14 +229,17 @@ readInterfaceToken(): string
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
Stub
extends
rpc
.
RemoteObject
{
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteRequest
(
code
:
number
,
data
:
rpc
.
MessageParcel
,
reply
:
rpc
.
MessageParcel
,
option
:
rpc
.
MessageOption
):
boolean
{
try
{
let
interfaceToken
=
data
.
readInterfaceToken
();
console
.
log
(
"
RpcServer: interfaceToken is
"
+
interfaceToken
);
}
catch
(
error
)
{
console
.
info
(
"
RpcServer: read interfaceToken failed, errorCode
"
+
error
.
code
);
console
.
info
(
"
RpcServer: read interfaceToken failed, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
RpcServer: read interfaceToken failed, errorCode
"
+
e
.
code
);
console
.
info
(
"
RpcServer: read interfaceToken failed, errorMessage
"
+
e
.
message
);
}
return
true
;
}
...
...
@@ -295,13 +307,16 @@ setSize(size: number): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
setSize
(
16
);
console
.
log
(
"
RpcClient: setSize is
"
+
data
.
getSize
());
}
catch
(
error
)
{
console
.
info
(
"
rpc set size of MessageSequence fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc set size of MessageSequence fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
setCapacity
(
100
);
console
.
log
(
"
RpcClient: setCapacity is
"
+
data
.
getCapacity
());
}
catch
(
error
)
{
console
.
info
(
"
rpc memory alloc fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc memory alloc fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc memory alloc fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc memory alloc fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -358,7 +376,7 @@ getWritableBytes(): number
```
ts
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
();
console
.
log
(
"
RpcServer: getWritableBytes is
"
+
getWritableBytes
);
return
true
;
...
...
@@ -384,7 +402,7 @@ getReadableBytes(): number
```
ts
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
();
console
.
log
(
"
RpcServer: getReadableBytes is
"
+
result
);
return
true
;
...
...
@@ -454,6 +472,8 @@ rewindRead(pos: number): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
data
.
writeInt
(
12
);
data
.
writeString
(
"
sequence
"
);
...
...
@@ -462,8 +482,9 @@ rewindRead(pos: number): void
try
{
data
.
rewindRead
(
0
);
}
catch
(
error
)
{
console
.
info
(
"
rpc rewind read data fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc rewind read data fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc rewind read data fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc rewind read data fail, errorMessage
"
+
e
.
message
);
}
let
number2
=
data
.
readInt
();
console
.
log
(
"
RpcClient: rewindRead is
"
+
number2
);
...
...
@@ -486,13 +507,16 @@ rewindWrite(pos: number): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
data
.
writeInt
(
4
);
try
{
data
.
rewindWrite
(
0
);
}
catch
(
error
)
{
console
.
info
(
"
rpc rewind read data fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc rewind read data fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc rewind read data fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc rewind read data fail, errorMessage
"
+
e
.
message
);
}
data
.
writeInt
(
5
);
let
number
=
data
.
readInt
();
...
...
@@ -524,12 +548,15 @@ writeByte(val: number): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeByte
(
2
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write byte fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write byte fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write byte fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write byte fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -558,19 +585,23 @@ readByte(): number
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeByte
(
2
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write byte fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write byte fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write byte fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write byte fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readByte
();
console
.
log
(
"
RpcClient: readByte is:
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write byte fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write byte fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeShort
(
8
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write short fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write short fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write short fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write short fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -633,19 +667,23 @@ readShort(): number
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeShort
(
8
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write short fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write short fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write short fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write short fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readShort
();
console
.
log
(
"
RpcClient: readByte is:
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read short fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read short fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeInt
(
10
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write int fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write int fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write int fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write int fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -708,19 +749,23 @@ readInt(): number
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeInt
(
10
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write int fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write int fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write int fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write int fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readInt
();
console
.
log
(
"
RpcClient: readInt is
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read int fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read int fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeLong
(
10000
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write long fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write long fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write long fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write long fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -783,19 +831,23 @@ readLong(): number
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeLong
(
10000
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write long fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write long fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write long fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write long fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readLong
();
console
.
log
(
"
RpcClient: readLong is
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read long fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read long fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeFloat
(
1.2
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write float fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write float fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write float fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write float fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -858,19 +913,23 @@ readFloat(): number
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeFloat
(
1.2
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write float fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write float fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write float fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write float fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readFloat
();
console
.
log
(
"
RpcClient: readFloat is
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read float fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read float fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeDouble
(
10.2
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read float fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read float fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read float fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read float fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -933,19 +995,23 @@ readDouble(): number
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeDouble
(
10.2
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write double fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write double fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write double fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write double fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readDouble
();
console
.
log
(
"
RpcClient: readDouble is
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read double fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read double fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeBoolean
(
false
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write boolean fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write boolean fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write boolean fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write boolean fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1008,19 +1077,23 @@ readBoolean(): boolean
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeBoolean
(
false
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write boolean fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write boolean fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write boolean fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write boolean fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readBoolean
();
console
.
log
(
"
RpcClient: readBoolean is
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read boolean fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read boolean fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeChar
(
97
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write char fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write char fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write char fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write char fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1083,19 +1159,23 @@ readChar(): number
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeChar
(
97
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write char fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write char fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write char fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write char fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readChar
();
console
.
log
(
"
RpcClient: readChar is
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read char fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read char fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeString
(
'
abc
'
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write string fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write string fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write string fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write string fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1158,19 +1241,23 @@ readString(): string
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeString
(
'
abc
'
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write string fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write string fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write string fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write string fail, errorMessage
"
+
e
.
message
);
}
try
{
let
ret
=
data
.
readString
();
console
.
log
(
"
RpcClient: readString is
"
+
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read string fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read string fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
class
MySequenceable
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyParcelable
implements
rpc
.
Parcelable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageSequence
)
{
marshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
messageSequence
.
writeInt
(
this
.
num
);
messageSequence
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageSequence
)
{
unmarshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
this
.
num
=
messageSequence
.
readInt
();
this
.
str
=
messageSequence
.
readString
();
return
true
;
}
}
let
parcelable
=
new
My
Sequence
able
(
1
,
"
aaa
"
);
let
parcelable
=
new
My
Parcel
able
(
1
,
"
aaa
"
);
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeParcelable
(
parcelable
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write parcelable fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write parcelable fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
class
MySequenceable
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyParcelable
implements
rpc
.
Parcelable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageSequence
)
{
marshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
messageSequence
.
writeInt
(
this
.
num
);
messageSequence
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageSequence
)
{
unmarshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
this
.
num
=
messageSequence
.
readInt
();
this
.
str
=
messageSequence
.
readString
();
return
true
;
}
}
let
parcelable
=
new
My
Sequence
able
(
1
,
"
aaa
"
);
let
parcelable
=
new
My
Parcel
able
(
1
,
"
aaa
"
);
let
data
=
rpc
.
MessageSequence
.
create
();
data
.
writeParcelable
(
parcelable
);
let
ret
=
new
My
Sequence
able
(
0
,
""
);
let
ret
=
new
My
Parcel
able
(
0
,
""
);
try
{
data
.
readParcelable
(
ret
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read parcelable fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read parcelable fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
let
ByteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
try
{
data
.
writeByteArray
(
ByteArrayVar
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write byteArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write byteArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
let
ByteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
try
{
data
.
writeByteArray
(
ByteArrayVar
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write byteArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write byteArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write byteArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write byteArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
new
Array
(
5
);
let
array
:
Array
<
number
>
=
new
Array
(
5
);
data
.
readByteArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write byteArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write byteArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write byteArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write byteArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1385,20 +1485,24 @@ readByteArray(): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
let
byteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
try
{
data
.
writeByteArray
(
byteArrayVar
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write byteArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write byteArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write byteArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write byteArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readByteArray
();
console
.
log
(
"
RpcClient: readByteArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read byteArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read byteArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeShortArray
([
11
,
12
,
13
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc read byteArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read byteArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeShortArray
([
11
,
12
,
13
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write shortArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write shortArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write shortArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write shortArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
new
Array
(
3
);
let
array
:
Array
<
number
>
=
new
Array
(
3
);
data
.
readShortArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read shortArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read shortArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read shortArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read shortArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1502,19 +1613,23 @@ readShortArray(): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeShortArray
([
11
,
12
,
13
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write shortArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write shortArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write shortArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write shortArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readShortArray
();
console
.
log
(
"
RpcClient: readShortArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read shortArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read shortArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeIntArray
([
100
,
111
,
112
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write intArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write intArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeIntArray
([
100
,
111
,
112
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write intArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write intArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
data
.
readIntArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read intArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read intArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read intArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read intArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1618,19 +1740,23 @@ readIntArray(): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeIntArray
([
100
,
111
,
112
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write intArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write intArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write intArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write intArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readIntArray
();
console
.
log
(
"
RpcClient: readIntArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read intArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read intArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeLongArray
([
1111
,
1112
,
1113
]);
}
catch
(
error
){
console
.
info
(
"
rpc write longArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write longArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeLongArray
([
1111
,
1112
,
1113
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write longArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write longArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
data
.
readLongArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read longArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read longArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read longArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read longArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1734,19 +1867,23 @@ readLongArray(): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeLongArray
([
1111
,
1112
,
1113
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write longArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write longArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write longArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write longArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readLongArray
();
console
.
log
(
"
RpcClient: readLongArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read longArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read longArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeFloatArray
([
1.2
,
1.3
,
1.4
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write floatArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write floatArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeFloatArray
([
1.2
,
1.3
,
1.4
]);
}
catch
(
error
){
console
.
info
(
"
rpc write floatArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write floatArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
data
.
readFloatArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read floatArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read floatArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read floatArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read floatArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1850,19 +1994,23 @@ readFloatArray(): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeFloatArray
([
1.2
,
1.3
,
1.4
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write floatArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write floatArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write floatArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write floatArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readFloatArray
();
console
.
log
(
"
RpcClient: readFloatArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read floatArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read floatArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeDoubleArray
([
11.1
,
12.2
,
13.3
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write doubleArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write doubleArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeDoubleArray
([
11.1
,
12.2
,
13.3
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write doubleArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write doubleArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
data
.
readDoubleArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read doubleArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read doubleArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read doubleArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read doubleArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -1966,19 +2121,23 @@ readDoubleArray(): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeDoubleArray
([
11.1
,
12.2
,
13.3
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write doubleArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write doubleArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write doubleArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write doubleArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readDoubleArray
();
console
.
log
(
"
RpcClient: readDoubleArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read doubleArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read doubleArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeBooleanArray
([
false
,
true
,
false
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write booleanArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write booleanArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeBooleanArray
([
false
,
true
,
false
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write booleanArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write booleanArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
data
.
readBooleanArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read booleanArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read booleanArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read booleanArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read booleanArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -2082,19 +2248,23 @@ readBooleanArray(): boolean[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeBooleanArray
([
false
,
true
,
false
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write booleanArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write booleanArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write booleanArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write booleanArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readBooleanArray
();
console
.
log
(
"
RpcClient: readBooleanArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read booleanArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read booleanArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeCharArray
([
97
,
98
,
88
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write charArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write charArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeCharArray
([
97
,
98
,
88
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write charArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write charArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
data
.
readCharArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read charArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read charArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read charArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read charArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -2198,20 +2375,24 @@ readCharArray(): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeCharArray
([
97
,
98
,
88
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write charArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write charArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
let
array
=
data
.
readCharArray
();
console
.
log
(
"
RpcClient: readCharArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read charArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read charArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeStringArray
([
"
abc
"
,
"
def
"
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write stringArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write stringArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeStringArray
([
"
abc
"
,
"
def
"
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write stringArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write stringArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
{
data
.
readStringArray
(
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read stringArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read stringArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read stringArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read stringArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -2315,19 +2503,23 @@ readStringArray(): string[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
data
=
rpc
.
MessageSequence
.
create
();
try
{
data
.
writeStringArray
([
"
abc
"
,
"
def
"
]);
}
catch
(
error
)
{
console
.
info
(
"
rpc write stringArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write stringArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write stringArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write stringArray fail, errorMessage
"
+
e
.
message
);
}
try
{
let
array
=
data
.
readStringArray
();
console
.
log
(
"
RpcClient: readStringArray is
"
+
array
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read stringArray fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read stringArray fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read stringArray fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read stringArray fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -2350,19 +2542,22 @@ writeNoException(): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteRequest
(
code
:
number
,
data
:
rpc
.
MessageParcel
,
reply
:
rpc
.
MessageParcel
,
option
:
rpc
.
MessageOption
):
boolean
{
if
(
code
===
1
)
{
console
.
log
(
"
RpcServer: onRemoteRequest called
"
);
try
{
reply
.
writeNoException
();
}
catch
(
error
)
{
console
.
info
(
"
rpc write no exception fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write no exception fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write no exception fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write no exception fail, errorMessage
"
+
e
.
message
);
}
return
true
;
}
else
{
...
...
@@ -2396,29 +2591,32 @@ readException(): void
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...
...
@@ -2430,21 +2628,22 @@ readException(): void
data
.
writeInt
(
1
);
data
.
writeString
(
"
hello
"
);
proxy
.
sendMessageRequest
(
1
,
data
,
reply
,
option
)
.
then
(
function
(
errCode
)
{
.
then
(
(
errCode
:
number
)
=>
{
if
(
errCode
===
0
)
{
console
.
log
(
"
sendMessageRequest got result
"
);
try
{
reply
.
readException
();
}
catch
(
error
)
{
console
.
info
(
"
rpc read exception fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read no exception fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read exception fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read no exception fail, errorMessage
"
+
e
.
message
);
}
let
msg
=
reply
.
readString
();
console
.
log
(
"
RPCTest: reply msg:
"
+
msg
);
}
else
{
console
.
log
(
"
RPCTest: sendMessageRequest failed, errCode:
"
+
errCode
);
}
}).
catch
(
function
(
e
)
{
}).
catch
(
(
e
:
Error
)
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest got exception:
"
+
e
.
message
);
}).
finally
(()
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest ends, reclaim parcel
"
);
...
...
@@ -2478,19 +2677,21 @@ writeParcelableArray(parcelableArray: Parcelable[]): void
**示例:**
```
ts
class
MyParcelable
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyParcelable
implements
rpc
.
Parcelable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageSequence
)
{
marshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
messageSequence
.
writeInt
(
this
.
num
);
messageSequence
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageSequence
)
{
unmarshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
this
.
num
=
messageSequence
.
readInt
();
this
.
str
=
messageSequence
.
readString
();
return
true
;
...
...
@@ -2504,8 +2705,9 @@ writeParcelableArray(parcelableArray: Parcelable[]): void
try
{
data
.
writeParcelableArray
(
a
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write parcelable array fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write parcelable array fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
class
MyParcelable
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyParcelable
implements
rpc
.
Parcelable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageSequence
)
{
marshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
messageSequence
.
writeInt
(
this
.
num
);
messageSequence
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageSequence
)
{
unmarshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
this
.
num
=
messageSequence
.
readInt
();
this
.
str
=
messageSequence
.
readString
();
return
true
;
...
...
@@ -2564,8 +2768,9 @@ readParcelableArray(parcelableArray: Parcelable[]): void
try
{
data
.
readParcelableArray
(
b
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read parcelable array fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read parcelable array fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc read parcelable array fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc read parcelable array fail, errorMessage
"
+
e
.
message
);
}
data
.
readParcelableArray
(
b
);
```
...
...
@@ -2595,8 +2800,10 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
this
.
modifyLocalInterface
(
this
,
descriptor
);
}
...
...
@@ -2611,8 +2818,9 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): void
try
{
data
.
writeRemoteObjectArray
(
a
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write remote object array fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write remote object array fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
);
```
...
...
@@ -2642,13 +2850,15 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
**示例:**
```
ts
class
MyDeathRecipient
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
this
.
modifyLocalInterface
(
this
,
descriptor
);
}
...
...
@@ -2660,12 +2870,13 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
let
a
=
[
new
TestRemoteObject
(
"
testObject1
"
),
new
TestRemoteObject
(
"
testObject2
"
),
new
TestRemoteObject
(
"
testObject3
"
)];
let
data
=
rpc
.
MessageSequence
.
create
();
data
.
writeRemoteObjectArray
(
a
);
let
b
=
new
Array
(
3
);
let
b
:
Array
<
rpc
.
IRemoteObject
>
=
new
Array
(
3
);
try
{
data
.
readRemoteObjectArray
(
b
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read remote object array fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read remote object array fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
);
```
...
...
@@ -2695,8 +2906,10 @@ readRemoteObjectArray(): IRemoteObject[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
this
.
modifyLocalInterface
(
this
,
descriptor
);
}
...
...
@@ -2712,8 +2925,9 @@ readRemoteObjectArray(): IRemoteObject[]
let
b
=
data
.
readRemoteObjectArray
();
console
.
log
(
"
RpcClient: readRemoteObjectArray is
"
+
b
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read remote object array fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read remote object array fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
import
fs
from
'
@ohos.file.fs
'
;
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
try
{
rpc
.
MessageSequence
.
closeFileDescriptor
(
file
.
fd
);
}
catch
(
error
)
{
console
.
info
(
"
rpc close file descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc close file descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
import
fs
from
'
@ohos.file.fs
'
;
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
try
{
let
newFd
=
rpc
.
MessageSequence
.
dupFileDescriptor
(
file
.
fd
);
}
catch
(
error
)
{
console
.
info
(
"
rpc dup file descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc dup file descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
import
fs
from
'
@ohos.file.fs
'
;
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
sequence
=
new
rpc
.
MessageSequence
();
let
filePath
=
"
path/to/file
"
;
let
r1
=
sequence
.
containFileDescriptors
();
...
...
@@ -2812,15 +3034,17 @@ containFileDescriptors(): boolean
try
{
sequence
.
writeFileDescriptor
(
file
.
fd
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write file descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write file descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write file descriptor fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write file descriptor fail, errorMessage
"
+
e
.
message
);
}
try
{
let
containFD
=
sequence
.
containFileDescriptors
();
console
.
log
(
"
RpcTest: sequence after write fd containFd result is :
"
+
containFD
);
}
catch
(
error
)
{
console
.
info
(
"
rpc contain file descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc contain file descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
import
fs
from
'
@ohos.file.fs
'
;
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
sequence
=
new
rpc
.
MessageSequence
();
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
try
{
sequence
.
writeFileDescriptor
(
file
.
fd
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write file descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write file descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
import
fs
from
'
@ohos.file.fs
'
;
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
sequence
=
new
rpc
.
MessageSequence
();
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
try
{
sequence
.
writeFileDescriptor
(
file
.
fd
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write file descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write file descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write file descriptor fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write file descriptor fail, errorMessage
"
+
e
.
message
);
}
try
{
let
readFD
=
sequence
.
readFileDescriptor
();
}
catch
(
error
)
{
console
.
info
(
"
rpc read file descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read file descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
sequence
=
new
rpc
.
MessageSequence
();
let
ashmem
;
let
ashmem
:
rpc
.
Ashmem
;
try
{
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
)
{
console
.
info
(
"
rpc create ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc creat ashmem fail, errorMessage
"
+
error
.
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
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc create ashmem fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc creat ashmem fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -2970,26 +3205,32 @@ readAshmem(): Ashmem
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
sequence
=
new
rpc
.
MessageSequence
();
let
ashmem
;
let
ashmem
:
rpc
.
Ashmem
;
try
{
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
)
{
console
.
info
(
"
rpc create ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc creat ashmem fail, errorMessage
"
+
error
.
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
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc create ashmem fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc creat ashmem fail, errorMessage
"
+
e
.
message
);
}
try
{
let
readAshmem
=
sequence
.
readAshmem
();
console
.
log
(
"
RpcTest: read ashmem to result is :
"
+
readAshmem
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read ashmem fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
sequence
=
new
rpc
.
MessageSequence
();
let
arr
=
[
1
,
2
,
3
,
4
,
5
];
try
{
sequence
.
writeRawData
(
arr
,
arr
.
length
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write rawdata fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write rawdata fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
sequence
=
new
rpc
.
MessageSequence
();
let
arr
=
[
1
,
2
,
3
,
4
,
5
];
try
{
sequence
.
writeRawData
(
arr
,
arr
.
length
);
}
catch
(
error
)
{
console
.
info
(
"
rpc write rawdata fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc write rawdata fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
rpc write rawdata fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
rpc write rawdata fail, errorMessage
"
+
e
.
message
);
}
try
{
let
result
=
sequence
.
readRawData
(
5
);
console
.
log
(
"
RpcTest: sequence read raw data result is :
"
+
result
);
}
catch
(
error
)
{
console
.
info
(
"
rpc read rawdata fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc read rawdata fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -3205,13 +3453,13 @@ readRemoteObject(): IRemoteObject
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -3276,7 +3524,7 @@ readInterfaceToken(): string
```
ts
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
();
console
.
log
(
"
RpcServer: interfaceToken is
"
+
interfaceToken
);
return
true
;
...
...
@@ -3402,7 +3650,7 @@ getWritableBytes(): number
```
ts
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
();
console
.
log
(
"
RpcServer: getWritableBytes is
"
+
getWritableBytes
);
return
true
;
...
...
@@ -3428,7 +3676,7 @@ getReadableBytes(): number
```
ts
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
();
console
.
log
(
"
RpcServer: getReadableBytes is
"
+
result
);
return
true
;
...
...
@@ -4036,19 +4284,19 @@ writeSequenceable(val: Sequenceable): boolean
**示例:**
```
ts
class
MySequenceable
{
class
MySequenceable
implements
rpc
.
Sequenceable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
marshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
unmarshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
return
true
;
...
...
@@ -4083,19 +4331,19 @@ readSequenceable(dataIn: Sequenceable): boolean
**示例:**
```
ts
class
MySequenceable
{
class
MySequenceable
implements
rpc
.
Sequenceable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
marshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
unmarshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
return
true
;
...
...
@@ -4160,7 +4408,7 @@ readByteArray(dataIn: number[]): void
let
ByteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
let
result
=
data
.
writeByteArray
(
ByteArrayVar
);
console
.
log
(
"
RpcClient: writeByteArray is
"
+
result
);
let
array
=
new
Array
(
5
);
let
array
:
Array
<
number
>
=
new
Array
(
5
);
data
.
readByteArray
(
array
);
```
...
...
@@ -4237,7 +4485,7 @@ readShortArray(dataIn: number[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeShortArray
([
11
,
12
,
13
]);
console
.
log
(
"
RpcClient: writeShortArray is
"
+
result
);
let
array
=
new
Array
(
3
);
let
array
:
Array
<
number
>
=
new
Array
(
3
);
data
.
readShortArray
(
array
);
```
...
...
@@ -4313,7 +4561,7 @@ readIntArray(dataIn: number[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeIntArray
([
100
,
111
,
112
]);
console
.
log
(
"
RpcClient: writeIntArray is
"
+
result
);
let
array
=
new
Array
(
3
);
let
array
:
Array
<
number
>
=
new
Array
(
3
);
data
.
readIntArray
(
array
);
```
...
...
@@ -4389,7 +4637,7 @@ readLongArray(dataIn: number[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeLongArray
([
1111
,
1112
,
1113
]);
console
.
log
(
"
RpcClient: writeLongArray is
"
+
result
);
let
array
=
new
Array
(
3
);
let
array
:
Array
<
number
>
=
new
Array
(
3
);
data
.
readLongArray
(
array
);
```
...
...
@@ -4465,7 +4713,7 @@ readFloatArray(dataIn: number[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeFloatArray
([
1.2
,
1.3
,
1.4
]);
console
.
log
(
"
RpcClient: writeFloatArray is
"
+
result
);
let
array
=
new
Array
(
3
);
let
array
:
Array
<
number
>
=
new
Array
(
3
);
data
.
readFloatArray
(
array
);
```
...
...
@@ -4541,7 +4789,7 @@ readDoubleArray(dataIn: number[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeDoubleArray
([
11.1
,
12.2
,
13.3
]);
console
.
log
(
"
RpcClient: writeDoubleArray is
"
+
result
);
let
array
=
new
Array
(
3
);
let
array
:
Array
<
number
>
=
new
Array
(
3
);
data
.
readDoubleArray
(
array
);
```
...
...
@@ -4617,7 +4865,7 @@ readBooleanArray(dataIn: boolean[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeBooleanArray
([
false
,
true
,
false
]);
console
.
log
(
"
RpcClient: writeBooleanArray is
"
+
result
);
let
array
=
new
Array
(
3
);
let
array
:
Array
<
boolean
>
=
new
Array
(
3
);
data
.
readBooleanArray
(
array
);
```
...
...
@@ -4693,7 +4941,7 @@ readCharArray(dataIn: number[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeCharArray
([
97
,
98
,
99
]);
console
.
log
(
"
RpcClient: writeCharArray is
"
+
result
);
let
array
=
new
Array
(
3
);
let
array
:
Array
<
number
>
=
new
Array
(
3
);
data
.
readCharArray
(
array
);
```
...
...
@@ -4769,7 +5017,7 @@ readStringArray(dataIn: string[]): void
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeStringArray
([
"
abc
"
,
"
def
"
]);
console
.
log
(
"
RpcClient: writeStringArray is
"
+
result
);
let
array
=
new
Array
(
2
);
let
array
:
Array
<
string
>
=
new
Array
(
2
);
data
.
readStringArray
(
array
);
```
...
...
@@ -4808,13 +5056,13 @@ writeNoException(): void
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -4826,7 +5074,7 @@ writeNoException(): void
isObjectDead
():
boolean
{
return
false
;
}
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteRequest
(
code
:
number
,
data
:
rpc
.
MessageParcel
,
reply
:
rpc
.
MessageParcel
,
option
:
rpc
.
MessageOption
):
boolean
{
if
(
code
===
1
)
{
console
.
log
(
"
RpcServer: onRemoteRequest called
"
);
reply
.
writeNoException
();
...
...
@@ -4854,29 +5102,31 @@ readException(): void
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...
...
@@ -4888,7 +5138,7 @@ readException(): void
data
.
writeInt
(
1
);
data
.
writeString
(
"
hello
"
);
proxy
.
sendMessageRequest
(
1
,
data
,
reply
,
option
)
.
then
(
function
(
errCode
)
{
.
then
(
(
errCode
:
number
)
=>
{
if
(
errCode
===
0
)
{
console
.
log
(
"
sendMessageRequest got result
"
);
reply
.
readException
();
...
...
@@ -4897,8 +5147,8 @@ readException(): void
}
else
{
console
.
log
(
"
RPCTest: sendMessageRequest failed, errCode:
"
+
errCode
);
}
}).
catch
(
function
(
e
)
{
console
.
log
(
"
RPCTest: sendMessageRequest got exception:
"
+
e
.
message
);
}).
catch
(
(
error
:
Error
)
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest got exception:
"
+
e
rror
.
message
);
}).
finally
(()
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest ends, reclaim parcel
"
);
data
.
reclaim
();
...
...
@@ -4929,19 +5179,19 @@ writeSequenceableArray(sequenceableArray: Sequenceable[]): boolean
**示例:**
```
ts
class
MySequenceable
{
class
MySequenceable
implements
rpc
.
Sequenceable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
marshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
unmarshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
return
true
;
...
...
@@ -4973,19 +5223,19 @@ readSequenceableArray(sequenceableArray: Sequenceable[]): void
**示例:**
```
ts
class
MySequenceable
{
class
MySequenceable
implements
rpc
.
Sequenceable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
marshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
unmarshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
return
true
;
...
...
@@ -5025,13 +5275,13 @@ writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
this
.
attachLocalInterface
(
this
,
descriptor
);
}
...
...
@@ -5071,13 +5321,13 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
this
.
attachLocalInterface
(
this
,
descriptor
);
}
...
...
@@ -5097,7 +5347,7 @@ readRemoteObjectArray(objects: IRemoteObject[]): void
let
a
=
[
new
TestRemoteObject
(
"
testObject1
"
),
new
TestRemoteObject
(
"
testObject2
"
),
new
TestRemoteObject
(
"
testObject3
"
)];
let
data
=
rpc
.
MessageParcel
.
create
();
let
result
=
data
.
writeRemoteObjectArray
(
a
);
let
b
=
new
Array
(
3
);
let
b
:
Array
<
rpc
.
IRemoteObject
>
=
new
Array
(
3
);
data
.
readRemoteObjectArray
(
b
);
```
...
...
@@ -5118,13 +5368,13 @@ readRemoteObjectArray(): IRemoteObject[]
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
this
.
attachLocalInterface
(
this
,
descriptor
);
}
...
...
@@ -5167,6 +5417,7 @@ static closeFileDescriptor(fd: number): void
```
ts
import
fs
from
'
@ohos.file.fs
'
;
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
rpc
.
MessageParcel
.
closeFileDescriptor
(
file
.
fd
);
...
...
@@ -5196,6 +5447,7 @@ static dupFileDescriptor(fd: number) :number
```
ts
import
fs
from
'
@ohos.file.fs
'
;
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
let
newFd
=
rpc
.
MessageParcel
.
dupFileDescriptor
(
file
.
fd
);
...
...
@@ -5219,6 +5471,7 @@ containFileDescriptors(): boolean
```
ts
import
fs
from
'
@ohos.file.fs
'
;
let
parcel
=
new
rpc
.
MessageParcel
();
let
filePath
=
"
path/to/file
"
;
let
r1
=
parcel
.
containFileDescriptors
();
...
...
@@ -5253,6 +5506,7 @@ writeFileDescriptor(fd: number): boolean
```
ts
import
fs
from
'
@ohos.file.fs
'
;
let
parcel
=
new
rpc
.
MessageParcel
();
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
...
...
@@ -5278,6 +5532,7 @@ readFileDescriptor(): number
```
ts
import
fs
from
'
@ohos.file.fs
'
;
let
parcel
=
new
rpc
.
MessageParcel
();
let
filePath
=
"
path/to/file
"
;
let
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
|
fs
.
OpenMode
.
CREATE
);
...
...
@@ -5450,19 +5705,19 @@ marshalling(dataOut: MessageSequence): boolean
**示例:**
```
ts
class
MyParcelable
{
class
MyParcelable
implements
rpc
.
Parcelable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageSequence
)
{
marshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
messageSequence
.
writeInt
(
this
.
num
);
messageSequence
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageSequence
)
{
unmarshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
this
.
num
=
messageSequence
.
readInt
();
this
.
str
=
messageSequence
.
readString
();
return
true
;
...
...
@@ -5500,19 +5755,19 @@ unmarshalling(dataIn: MessageSequence): boolean
**示例:**
```
ts
class
MyParcelable
{
class
MyParcelable
implements
rpc
.
Parcelable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageSequence
)
{
marshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
messageSequence
.
writeInt
(
this
.
num
);
messageSequence
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageSequence
)
{
unmarshalling
(
messageSequence
:
rpc
.
MessageSequence
):
boolean
{
this
.
num
=
messageSequence
.
readInt
();
this
.
str
=
messageSequence
.
readString
();
return
true
;
...
...
@@ -5556,19 +5811,19 @@ marshalling(dataOut: MessageParcel): boolean
**示例:**
```
ts
class
MySequenceable
{
class
MySequenceable
implements
rpc
.
Sequenceable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
marshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
unmarshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
return
true
;
...
...
@@ -5606,19 +5861,19 @@ unmarshalling(dataIn: MessageParcel): boolean
**示例:**
```
ts
class
MySequenceable
{
class
MySequenceable
implements
rpc
.
Sequenceable
{
num
:
number
;
str
:
string
;
constructor
(
num
,
str
)
{
constructor
(
num
:
number
,
str
:
string
)
{
this
.
num
=
num
;
this
.
str
=
str
;
}
marshalling
(
messageParcel
)
{
marshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
messageParcel
.
writeInt
(
this
.
num
);
messageParcel
.
writeString
(
this
.
str
);
return
true
;
}
unmarshalling
(
messageParcel
)
{
unmarshalling
(
messageParcel
:
rpc
.
MessageParcel
):
boolean
{
this
.
num
=
messageParcel
.
readInt
();
this
.
str
=
messageParcel
.
readString
();
return
true
;
...
...
@@ -5670,28 +5925,31 @@ asObject(): IRemoteObject
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let
proxy
;
let
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
import
Want
from
'
@ohos.app.ability.Want
'
;
import
common
from
'
@ohos.app.ability.common
'
;
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的asObject接口方法获取代理或远端对象
...
...
@@ -5699,7 +5957,7 @@ asObject(): IRemoteObject
```
ts
class
TestProxy
{
remote
:
rpc
.
RemoteObject
;
constructor
(
remote
)
{
constructor
(
remote
:
rpc
.
RemoteObject
)
{
this
.
remote
=
remote
;
}
asObject
()
{
...
...
@@ -5724,7 +5982,7 @@ onRemoteDied(): void
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
...
...
@@ -6107,28 +6365,31 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
// 仅FA模型需要导入@ohos.ability.featureAbility
// import FA from "@ohos.ability.featureAbility";
let
proxy
;
let
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
import
Want
from
'
@ohos.app.ability.Want
'
;
import
common
from
'
@ohos.app.ability.common
'
;
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...
...
@@ -6182,29 +6443,31 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...
...
@@ -6216,7 +6479,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
data
.
writeInt
(
1
);
data
.
writeString
(
"
hello
"
);
proxy
.
sendMessageRequest
(
1
,
data
,
reply
,
option
)
.
then
(
function
(
result
)
{
.
then
(
(
result
:
rpc
.
RequestResult
)
=>
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendMessageRequest got result
"
);
result
.
reply
.
readException
();
...
...
@@ -6225,7 +6488,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
}
else
{
console
.
log
(
"
RPCTest: sendMessageRequest failed, errCode:
"
+
result
.
errCode
);
}
}).
catch
(
function
(
e
)
{
}).
catch
(
(
e
:
Error
)
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest got exception:
"
+
e
.
message
);
}).
finally
(()
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest ends, reclaim parcel
"
);
...
...
@@ -6266,29 +6529,31 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...
...
@@ -6300,7 +6565,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
data
.
writeInt
(
1
);
data
.
writeString
(
"
hello
"
);
proxy
.
sendRequest
(
1
,
data
,
reply
,
option
)
.
then
(
function
(
result
)
{
.
then
(
(
result
:
rpc
.
SendRequestResult
)
=>
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
...
...
@@ -6309,7 +6574,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
}
else
{
console
.
log
(
"
RPCTest: sendRequest failed, errCode:
"
+
result
.
errCode
);
}
}).
catch
(
function
(
e
)
{
}).
catch
(
(
e
:
Error
)
=>
{
console
.
log
(
"
RPCTest: sendRequest got exception:
"
+
e
.
message
);
}).
finally
(()
=>
{
console
.
log
(
"
RPCTest: sendRequest ends, reclaim parcel
"
);
...
...
@@ -6343,42 +6608,45 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
function
sendRequestCallback
(
result
)
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
let
msg
=
result
.
reply
.
readString
();
console
.
log
(
"
RPCTest: reply msg:
"
+
msg
);
}
else
{
console
.
log
(
"
RPCTest: sendRequest failed, errCode:
"
+
result
.
errCode
);
}
console
.
log
(
"
RPCTest: sendRequest ends, reclaim parcel
"
);
result
.
data
.
reclaim
();
result
.
reply
.
reclaim
();
}
function
sendRequestCallback
(
result
:
rpc
.
RequestResult
)
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
let
msg
=
result
.
reply
.
readString
();
console
.
log
(
"
RPCTest: reply msg:
"
+
msg
);
}
else
{
console
.
log
(
"
RPCTest: sendRequest failed, errCode:
"
+
result
.
errCode
);
}
console
.
log
(
"
RPCTest: sendRequest ends, reclaim parcel
"
);
result
.
data
.
reclaim
();
result
.
reply
.
reclaim
();
}
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendMessageRequest接口方法发送消息
...
...
@@ -6392,8 +6660,9 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
try
{
proxy
.
sendMessageRequest
(
1
,
data
,
reply
,
option
,
sendRequestCallback
);
}
catch
(
error
)
{
console
.
info
(
"
rpc send sequence request fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc send sequence request fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
function
sendRequestCallback
(
r
esult
)
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
let
msg
=
result
.
reply
.
readString
();
console
.
log
(
"
RPCTest: reply msg:
"
+
msg
);
}
else
{
console
.
log
(
"
RPCTest: sendRequest failed, errCode:
"
+
result
.
errCode
);
}
console
.
log
(
"
RPCTest: sendRequest ends, reclaim parcel
"
);
result
.
data
.
reclaim
();
result
.
reply
.
reclaim
();
}
function
sendRequestCallback
(
result
:
rpc
.
SendRequestR
esult
)
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
let
msg
=
result
.
reply
.
readString
();
console
.
log
(
"
RPCTest: reply msg:
"
+
msg
);
}
else
{
console
.
log
(
"
RPCTest: sendRequest failed, errCode:
"
+
result
.
errCode
);
}
console
.
log
(
"
RPCTest: sendRequest ends, reclaim parcel
"
);
result
.
data
.
reclaim
();
result
.
reply
.
reclaim
();
}
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalThis
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
this
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的sendRequest接口方法发送消息
...
...
@@ -6508,40 +6779,44 @@ getLocalInterface(interface: string): IRemoteBroker
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getLocalInterface接口方法查询接口对象
```
ts
try
{
let
broker
=
proxy
.
getLocalInterface
(
"
testObject
"
);
let
broker
:
rpc
.
IRemoteBroker
=
proxy
.
getLocalInterface
(
"
testObject
"
);
console
.
log
(
"
RpcClient: getLocalInterface is
"
+
broker
);
}
catch
(
error
)
{
console
.
info
(
"
rpc get local interface fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc get local interface fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的queryLocalInterface接口获取接口对象
```
ts
let
broker
=
proxy
.
queryLocalInterface
(
"
testObject
"
);
let
broker
:
rpc
.
IRemoteBroker
=
proxy
.
queryLocalInterface
(
"
testObject
"
);
console
.
log
(
"
RpcClient: queryLocalInterface is
"
+
broker
);
```
...
...
@@ -6636,35 +6913,38 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的registerDeathRecipient接口注册死亡回调
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
...
...
@@ -6673,8 +6953,9 @@ registerDeathRecipient(recipient: DeathRecipient, flags: number): void
try
{
proxy
.
registerDeathRecipient
(
deathRecipient
,
0
);
}
catch
(
error
)
{
console
.
info
(
"
proxy register deathRecipient fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
proxy register deathRecipient fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的addDeathRecipient接口方法新增死亡回调
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
...
...
@@ -6775,35 +7058,38 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的unregisterDeathRecipient接口方法注销死亡回调
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
...
...
@@ -6813,8 +7099,9 @@ unregisterDeathRecipient(recipient: DeathRecipient, flags: number): void
proxy
.
registerDeathRecipient
(
deathRecipient
,
0
);
proxy
.
unregisterDeathRecipient
(
deathRecipient
,
0
);
}
catch
(
error
)
{
console
.
info
(
"
proxy register deathRecipient fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
proxy register deathRecipient fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的removeDeathRecipient接口方法去注册死亡回调
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
...
...
@@ -6916,39 +7205,43 @@ getDescriptor(): string
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getDescriptor接口方法获取对象的接口描述符
```
ts
try
{
let
descriptor
=
proxy
.
getDescriptor
();
let
descriptor
:
string
=
proxy
.
getDescriptor
();
console
.
log
(
"
RpcClient: descriptor is
"
+
descriptor
);
}
catch
(
error
)
{
console
.
info
(
"
rpc get interface descriptor fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc get interface descriptor fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的getInterfaceDescriptor接口方法查询当前代理对象接口的描述符
```
ts
let
descriptor
=
proxy
.
getInterfaceDescriptor
();
let
descriptor
:
string
=
proxy
.
getInterfaceDescriptor
();
console
.
log
(
"
RpcClient: descriptor is
"
+
descriptor
);
```
...
...
@@ -7028,35 +7323,37 @@ isObjectDead(): boolean
```
ts
// 仅FA模型需要导入@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
connect
=
{
onConnect
:
function
(
elementName
,
remoteProxy
)
{
let
proxy
:
rpc
.
RemoteProxy
;
let
connect
:
common
.
ConnectOptions
=
{
onConnect
:
(
elementName
,
remoteProxy
:
rpc
.
RemoteProxy
)
=>
{
console
.
log
(
"
RpcClient: js onConnect called.
"
);
proxy
=
remoteProxy
;
},
onDisconnect
:
function
(
elementName
)
{
onDisconnect
:
(
elementName
)
=>
{
console
.
log
(
"
RpcClient: onDisconnect
"
);
},
onFailed
:
function
()
{
onFailed
:
()
=>
{
console
.
log
(
"
RpcClient: onFailed
"
);
}
};
let
want
=
{
"
bundleName
"
:
"
com.ohos.server
"
,
"
abilityName
"
:
"
com.ohos.server.EntryAbility
"
,
let
want
:
Want
=
{
bundleName
:
"
com.ohos.server
"
,
abilityName
:
"
com.ohos.server.EntryAbility
"
,
};
// FA模型使用此方法连接服务
// FA.connectAbility(want,connect);
globalT
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
t
his
.
context
.
connectServiceExtensionAbility
(
want
,
connect
);
```
上述onConnect回调函数中的proxy对象需要等ability异步连接成功后才会被赋值,然后才可调用proxy对象的isObjectDead接口方法判断当前对象是否已经死亡
```
ts
let
isDead
=
proxy
.
isObjectDead
();
let
isDead
:
boolean
=
proxy
.
isObjectDead
();
console
.
log
(
"
RpcClient: isObjectDead is
"
+
isDead
);
```
...
...
@@ -7091,7 +7388,7 @@ MessageOption构造函数。
```
ts
class
TestRemoteObject
extends
rpc
.
MessageOption
{
constructor
(
async
)
{
constructor
(
async
:
boolean
)
{
super
(
async
);
}
}
...
...
@@ -7116,7 +7413,7 @@ MessageOption构造函数。
```
ts
class
TestRemoteObject
extends
rpc
.
MessageOption
{
constructor
(
syncFlags
,
waitTime
)
{
constructor
(
syncFlags
?:
number
,
waitTime
?:
number
)
{
super
(
syncFlags
,
waitTime
);
}
}
...
...
@@ -7316,7 +7613,7 @@ static getCallingPid(): number
```
ts
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
();
console
.
log
(
"
RpcServer: getCallingPid result:
"
+
callerPid
);
return
true
;
...
...
@@ -7342,7 +7639,7 @@ static getCallingUid(): number
```
ts
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
();
console
.
log
(
"
RpcServer: getCallingUid result:
"
+
callerUid
);
return
true
;
...
...
@@ -7368,7 +7665,7 @@ static getCallingTokenId(): number;
```
ts
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
();
console
.
log
(
"
RpcServer: getCallingTokenId result:
"
+
callerTokenId
);
return
true
;
...
...
@@ -7394,7 +7691,7 @@ static getCallingDeviceID(): string
```
ts
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
();
console
.
log
(
"
RpcServer: callerDeviceID is:
"
+
callerDeviceID
);
return
true
;
...
...
@@ -7420,7 +7717,7 @@ static getLocalDeviceID(): string
```
ts
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
();
console
.
log
(
"
RpcServer: localDeviceID is:
"
+
localDeviceID
);
return
true
;
...
...
@@ -7446,7 +7743,7 @@ static isLocalCalling(): boolean
```
ts
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
();
console
.
log
(
"
RpcServer: isLocalCalling is:
"
+
isLocalCalling
);
return
true
;
...
...
@@ -7471,8 +7768,10 @@ static flushCmdBuffer(object: IRemoteObject): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
}
...
...
@@ -7480,8 +7779,9 @@ static flushCmdBuffer(object: IRemoteObject): void
try
{
rpc
.
IPCSkeleton
.
flushCmdBuffer
(
remoteObject
);
}
catch
(
error
)
{
console
.
info
(
"
proxy set calling identity fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
proxy set calling identity fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -7552,7 +7852,7 @@ static resetCallingIdentity(): string
```
ts
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
();
console
.
log
(
"
RpcServer: callingIdentity is:
"
+
callingIdentity
);
return
true
;
...
...
@@ -7578,8 +7878,8 @@ static restoreCallingIdentity(identity: string): void
```
ts
class
Stub
extends
rpc
.
RemoteObject
{
onRemoteMessageRequest
(
code
,
data
,
reply
,
option
)
{
let
callingIdentity
=
null
;
onRemoteMessageRequest
(
code
:
number
,
data
:
rpc
.
MessageSequence
,
reply
:
rpc
.
MessageSequence
,
option
:
rpc
.
MessageOption
):
boolean
|
Promise
<
boolean
>
{
let
callingIdentity
:
rpc
.
IPCSkeleton
;
try
{
callingIdentity
=
rpc
.
IPCSkeleton
.
resetCallingIdentity
();
console
.
log
(
"
RpcServer: callingIdentity is:
"
+
callingIdentity
);
...
...
@@ -7617,8 +7917,8 @@ static setCallingIdentity(identity: string): boolean
```
ts
class
Stub
extends
rpc
.
RemoteObject
{
onRemoteMessageRequest
(
code
,
data
,
reply
,
option
)
{
let
callingIdentity
=
null
;
onRemoteMessageRequest
(
code
:
number
,
data
:
rpc
.
MessageSequence
,
reply
:
rpc
.
MessageSequence
,
option
:
rpc
.
MessageOption
):
boolean
|
Promise
<
boolean
>
{
let
callingIdentity
:
rpc
.
IPCSkeleton
;
try
{
callingIdentity
=
rpc
.
IPCSkeleton
.
resetCallingIdentity
();
console
.
log
(
"
RpcServer: callingIdentity is:
"
+
callingIdentity
);
...
...
@@ -7677,13 +7977,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -7743,13 +8043,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -7769,7 +8069,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
data
.
writeInt
(
1
);
data
.
writeString
(
"
hello
"
);
testRemoteObject
.
sendRequest
(
1
,
data
,
reply
,
option
)
.
then
(
function
(
result
)
{
.
then
(
(
result
:
rpc
.
SendRequestResult
)
=>
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
...
...
@@ -7778,7 +8078,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
}
else
{
console
.
log
(
"
RPCTest: sendRequest failed, errCode:
"
+
result
.
errCode
);
}
}).
catch
(
function
(
e
)
{
}).
catch
(
(
e
:
Error
)
=>
{
console
.
log
(
"
RPCTest: sendRequest got exception:
"
+
e
.
message
);
}).
finally
(()
=>
{
console
.
log
(
"
RPCTest: sendRequest ends, reclaim parcel
"
);
...
...
@@ -7814,7 +8114,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
}
...
...
@@ -7825,7 +8125,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
data
.
writeInt
(
1
);
data
.
writeString
(
"
hello
"
);
testRemoteObject
.
sendMessageRequest
(
1
,
data
,
reply
,
option
)
.
then
(
function
(
result
)
{
.
then
(
(
result
:
rpc
.
RequestResult
)
=>
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendMessageRequest got result
"
);
result
.
reply
.
readException
();
...
...
@@ -7834,7 +8134,7 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
}
else
{
console
.
log
(
"
RPCTest: sendMessageRequest failed, errCode:
"
+
result
.
errCode
);
}
}).
catch
(
function
(
e
)
{
}).
catch
(
(
e
:
Error
)
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest got exception:
"
+
e
.
message
);
}).
finally
(()
=>
{
console
.
log
(
"
RPCTest: sendMessageRequest ends, reclaim parcel
"
);
...
...
@@ -7865,11 +8165,11 @@ sendMessageRequest(code: number, data: MessageSequence, reply: MessageSequence,
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
}
function
sendRequestCallback
(
result
)
{
function
sendRequestCallback
(
result
:
rpc
.
RequestResult
)
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
...
...
@@ -7914,13 +8214,13 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -7933,7 +8233,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
return
false
;
}
}
function
sendRequestCallback
(
result
)
{
function
sendRequestCallback
(
result
:
rpc
.
SendRequestResult
)
{
if
(
result
.
errCode
===
0
)
{
console
.
log
(
"
sendRequest got result
"
);
result
.
reply
.
readException
();
...
...
@@ -7983,13 +8283,13 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里处理
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -8001,7 +8301,7 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里处理
isObjectDead
():
boolean
{
return
false
;
}
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteRequest
(
code
:
number
,
data
:
rpc
.
MessageParcel
,
reply
:
rpc
.
MessageParcel
,
option
:
rpc
.
MessageOption
):
boolean
{
if
(
code
===
1
)
{
console
.
log
(
"
RpcServer: onRemoteRequest called
"
);
return
true
;
...
...
@@ -8046,11 +8346,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
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
)
{
console
.
log
(
"
RpcServer: sync onRemoteMessageRequest is called
"
);
return
true
;
...
...
@@ -8066,18 +8366,18 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
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
)
{
console
.
log
(
"
RpcServer: async onRemoteMessageRequest is called
"
);
}
else
{
console
.
log
(
"
RpcServer: unknown code:
"
+
code
);
return
false
;
}
await
new
Promise
((
resolve
)
=>
{
await
new
Promise
((
resolve
:
(
data
:
rpc
.
RequestResult
)
=>
void
)
=>
{
setTimeout
(
resolve
,
100
);
})
return
true
;
...
...
@@ -8089,11 +8389,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteRequest
(
code
:
number
,
data
:
rpc
.
MessageParcel
,
reply
:
rpc
.
MessageParcel
,
option
:
rpc
.
MessageOption
):
boolean
{
if
(
code
===
1
)
{
console
.
log
(
"
RpcServer: sync onRemoteMessageRequest is called
"
);
return
true
;
...
...
@@ -8103,7 +8403,7 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
}
}
// 同时调用仅会执行onRemoteMessageRequest
onRemoteMessageRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteMessageRequest
(
code
:
number
,
data
:
rpc
.
MessageSequence
,
reply
:
rpc
.
MessageSequence
,
option
:
rpc
.
MessageOption
):
boolean
|
Promise
<
boolean
>
{
if
(
code
===
1
)
{
console
.
log
(
"
RpcServer: async onRemoteMessageRequest is called
"
);
}
else
{
...
...
@@ -8120,11 +8420,11 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
onRemoteRequest
(
code
:
number
,
data
:
rpc
.
MessageParcel
,
reply
:
rpc
.
MessageParcel
,
option
:
rpc
.
MessageOption
):
boolean
{
if
(
code
===
1
)
{
console
.
log
(
"
RpcServer: sync onRemoteRequest is called
"
);
return
true
;
...
...
@@ -8134,14 +8434,14 @@ sendMessageRequest请求的响应处理函数,服务端在该函数里同步
}
}
// 同时调用仅会执行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
)
{
console
.
log
(
"
RpcServer: async onRemoteMessageRequest is called
"
);
}
else
{
console
.
log
(
"
RpcServer: unknown code:
"
+
code
);
return
false
;
}
await
new
Promise
((
resolve
)
=>
{
await
new
Promise
((
resolve
:
(
data
:
rpc
.
RequestResult
)
=>
void
)
=>
{
setTimeout
(
resolve
,
100
);
})
return
true
;
...
...
@@ -8166,7 +8466,7 @@ getCallingUid(): number
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
}
...
...
@@ -8192,7 +8492,7 @@ getCallingPid(): number
```
ts
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
}
...
...
@@ -8223,13 +8523,15 @@ getLocalInterface(descriptor: string): IRemoteBroker
**示例:**
```
ts
class
MyDeathRecipient
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
registerDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
)
{
...
...
@@ -8246,8 +8548,9 @@ getLocalInterface(descriptor: string): IRemoteBroker
try
{
let
broker
=
testRemoteObject
.
getLocalInterface
(
"
testObject
"
);
}
catch
(
error
)
{
console
.
info
(
"
rpc get local interface fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc get local interface fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -8324,13 +8627,15 @@ getDescriptor(): string
**示例:**
```
ts
class
MyDeathRecipient
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
registerDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
)
{
...
...
@@ -8348,8 +8653,9 @@ getDescriptor(): string
try
{
let
descriptor
=
testRemoteObject
.
getDescriptor
();
}
catch
(
error
)
{
console
.
info
(
"
rpc get local interface fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc get local interface fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
}
addDeathRecipient
(
recipient
:
MyDeathRecipient
,
flags
:
number
):
boolean
{
...
...
@@ -8414,19 +8720,22 @@ modifyLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
**示例:**
```
ts
class
MyDeathRecipient
{
import
{
BussinessError
}
from
'
@ohos.base
'
;
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
try
{
this
.
modifyLocalInterface
(
this
,
descriptor
);
}
catch
(
error
)
{
console
.
info
(
"
rpc attach local interface fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
rpc attach local interface fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
)
{
...
...
@@ -8465,13 +8774,13 @@ attachLocalInterface(localInterface: IRemoteBroker, descriptor: string): void
**示例:**
```
ts
class
MyDeathRecipient
{
class
MyDeathRecipient
implements
rpc
.
DeathRecipient
{
onRemoteDied
()
{
console
.
log
(
"
server died
"
);
}
}
class
TestRemoteObject
extends
rpc
.
RemoteObject
{
constructor
(
descriptor
)
{
constructor
(
descriptor
:
string
)
{
super
(
descriptor
);
this
.
attachLocalInterface
(
this
,
descriptor
);
}
...
...
@@ -8530,15 +8839,18 @@ static create(name: string, size: number): Ashmem
**示例:**
```
ts
let
ashmem
;
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem
:
rpc
.
Ashmem
;
try
{
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
let
size
=
ashmem
.
getAshmemSize
();
console
.
log
(
"
RpcTest: get ashemm by create :
"
+
ashmem
+
"
size is :
"
+
size
);
}
catch
(
error
)
{
console
.
info
(
"
Rpc creat ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc creat ashmem fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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>
...
...
@@ -8595,16 +8907,18 @@ static create(ashmem: Ashmem): Ashmem
**示例:**
```
ts
let
ashmem2
;
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem2
:
rpc
.
Ashmem
;
try
{
let
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
let
ashmem2
=
rpc
.
Ashmem
.
create
(
ashmem
);
let
size
=
ashmem2
.
getAshmemSize
();
console
.
log
(
"
RpcTest: get ashemm by create :
"
+
ashmem2
+
"
size is :
"
+
size
);
}
catch
(
error
)
{
console
.
info
(
"
Rpc creat ashmem from existing fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc creat ashmem from existing fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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>
...
...
@@ -8715,12 +9029,15 @@ mapTypedAshmem(mapType: number): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
try
{
ashmem
.
mapTypedAshmem
(
ashmem
.
PROT_READ
|
ashmem
.
PROT_WRITE
);
}
catch
(
error
)
{
console
.
info
(
"
Rpc map ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc map ashmem fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
console
.
info
(
"
Rpc map ashmem fail, errorCode
"
+
e
.
code
);
console
.
info
(
"
Rpc map ashmem fail, errorMessage
"
+
e
.
message
);
}
```
...
...
@@ -8773,12 +9090,15 @@ mapReadWriteAshmem(): void
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
try
{
ashmem
.
mapReadWriteAshmem
();
}
catch
(
error
)
{
console
.
info
(
"
Rpc map read and write ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc map read and write ashmem fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
try
{
ashmem
.
mapReadonlyAshmem
();
}
catch
(
error
)
{
console
.
info
(
"
Rpc map read and write ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc map read and write ashmem fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
try
{
ashmem
.
setProtection
(
ashmem
.
PROT_READ
);
}
catch
(
error
)
{
console
.
info
(
"
Rpc set protection type fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc set protection type fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
ashmem
.
mapReadWriteAshmem
();
var
ByteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
let
ByteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
try
{
ashmem
.
writeAshmem
(
ByteArrayVar
,
5
,
0
);
}
catch
(
error
)
{
console
.
info
(
"
Rpc write to ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc write to ashmem fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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
let
ashmem
=
rpc
.
Ashmem
.
createAshmem
(
"
ashmem
"
,
1024
*
1024
);
let
mapResult
=
ashmem
.
mapReadAndWriteAshmem
();
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
);
console
.
log
(
"
RpcTest: write to Ashmem result is :
"
+
writeResult
);
```
...
...
@@ -9027,16 +9356,19 @@ readAshmem(size: number, offset: number): number[]
**示例:**
```
ts
import
{
BussinessError
}
from
'
@ohos.base
'
;
let
ashmem
=
rpc
.
Ashmem
.
create
(
"
ashmem
"
,
1024
*
1024
);
ashmem
.
mapReadWriteAshmem
();
var
ByteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
let
ByteArrayVar
=
[
1
,
2
,
3
,
4
,
5
];
ashmem
.
writeAshmem
(
ByteArrayVar
,
5
,
0
);
try
{
let
readResult
=
ashmem
.
readAshmem
(
5
,
0
);
console
.
log
(
"
RpcTest: read from Ashmem result is :
"
+
readResult
);
}
catch
(
error
)
{
console
.
info
(
"
Rpc read from ashmem fail, errorCode
"
+
error
.
code
);
console
.
info
(
"
Rpc read from ashmem fail, errorMessage
"
+
error
.
message
);
let
e
:
BussinessError
=
error
as
BussinessError
;
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[]
let
ashmem
=
rpc
.
Ashmem
.
createAshmem
(
"
ashmem
"
,
1024
*
1024
);
let
mapResult
=
ashmem
.
mapReadAndWriteAshmem
();
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
);
console
.
log
(
"
RpcTest: write to Ashmem result is :
"
+
writeResult
);
let
readResult
=
ashmem
.
readFromAshmem
(
5
,
0
);
...
...
@@ -9079,19 +9411,22 @@ readFromAshmem(size: number, offset: number): number[]
## 获取context
**示例:**
此处只介绍一种获取context的方式,更多获取方式请参见
[
获取UIAbility的上下文信息
](
../../application-models/uiability-usage.md#获取uiability的上下文信息
)
。
```
ts
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
{
onCreate
(
want
,
l
aunchParam
)
{
onCreate
(
want
:
Want
,
launchParam
:
AbilityConstant
.
L
aunchParam
)
{
console
.
log
(
"
[Demo] MainAbility onCreate
"
);
globalThis
.
context
=
this
.
context
;
let
context
=
this
.
context
;
}
onDestroy
()
{
console
.
log
(
"
[Demo] MainAbility onDestroy
"
);
}
onWindowStageCreate
(
windowStage
)
{
onWindowStageCreate
(
windowStage
:
window
.
WindowStage
)
{
// Main window is created, set main page for this ability
console
.
log
(
"
[Demo] MainAbility onWindowStageCreate
"
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录