HarmonyOS 鸿蒙Next 求进程通信
HarmonyOS 鸿蒙Next 求进程通信 有大佬能提供一下跨进程通信的demo案列吗,就最简单的helloword都行。博客,其他具体点的文档都行。官方文档把我玩忙比了。
问题1.我看了官方的进程通信的rpc文档,云里雾里的。
大佬帮我分析一下
创建对象
let code = 1;
let option: rpc.MessageOption = new rpc.MessageOption()
let data: rpc.MessageSequence = rpc.MessageSequence.create()
let reply: rpc.MessageSequence = rpc.MessageSequence.create()
写入数据data
data.writeRemoteObject(数据);
发送请求
sendMessageRequest(code, data, reply, option)
然后卡这里了,发送请求要怎么才能发送到对应的进程?
服务端怎么获取到客户端发送的进程请求。
有没有大佬帮忙写个demo解释一下。
更多关于HarmonyOS 鸿蒙Next 求进程通信的实战教程也可以访问 https://www.itying.com/category-93-b0.html
5 回复
更多关于HarmonyOS 鸿蒙Next 求进程通信的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我只用过java的进程通信,看了文档,ts也基本一样
首先进程B启动一个服务,并在连接回调方法中返回rpc.RemoteObject
进程A调用featureAbility.connectAbility,连接进程B的一个服务,然后拿到进程B的remote对象
import rpc from '@ohos.rpc'
import featureAbility from '@ohos.ability.featureAbility'
function onConnectCallback(element, remote){
console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = featureAbility.connectAbility(
{
deviceId: "",
bundleName: "com.ix.ServiceAbility",
abilityName: "ServiceAbilityA",
},
{
onConnect: onConnectCallback,
onDisconnect: onDisconnectCallback,
onFailed: onFailedCallback,
},
);
进程A拿到IRemoteObject发送数据,进程B在服务的onRemoteRequest回调中接收
import rpc from "@ohos.rpc";
class FirstServiceAbilityStub extends rpc.RemoteObject {
constructor(des: any) {
if (typeof des === 'string') {
super(des)
} else {
return
}
}
onRemoteRequest(code: number, data: any, reply: any, option: any) {
console.log(printLog + ` onRemoteRequest called`)
if (code === 1) {
let string = data.readString()
console.log(printLog + ` string=${string}`)
let result = Array.from(string).sort().join('')
console.log(printLog + ` result=${result}`)
reply.writeString(result)
} else {
console.log(printLog + ` unknown request code`)
}
return true;
}
}
同一设备
姓名
张三
职位
软件工程师
兴趣爱好
- 阅读
- 篮球
- 旅游