ArkUI-X与Android消息通信
2025-06-08 21:19:34
105次阅读
0个评论
平台桥接用于客户端(ArkUI)和平台(Android或iOS)之间传递消息,即用于ArkUI与平台双向数据传递、ArkUI侧调用平台的方法、平台调用ArkUI侧的方法。本文主要介绍Android平台与ArkUI交互,ArkUI侧具体用法请参考Bridge API,Android侧参考BridgePlugin。
创建平台桥接
1.在ArkUI侧创建平台桥接。指定名称,该名称应与Android侧平台桥接的名称一致。通过创建的该对象即可调用平台桥接的方法。数据可以发送json格式或二进制格式。
// xxx.ets
// 导入平台桥接模块
import bridge from '@arkui-x.bridge';
// 创建平台桥接实例
const bridgeImpl = bridge.createBridge('Bridge');
// 创建平台桥接实例(二进制格式)
const bridgeImpl = bridge.createBridge('Bridge', BridgeType.BINARY_TYPE);
2.在Android侧创建BridgePlugin类。指定名称,该名称应与ArkUI侧平台桥接的名称一致。通过创建的该对象即可调用平台桥接的方法。
// xxx.java
Bridge bridge = new Bridge(this, "Bridge", getBridgeManager());
Bridge bridge = new Bridge(this, "Bridge", getBridgeManager(), BridgePlugin.BridgeType.BINARY_TYPE);
ArkUI侧向Android侧传递数据
1.ArkUI侧向Android侧传递数据。
// xxx.ets
private bridgeImpl = bridge.createBridge('Bridge');
this.bridgeImpl.sendMessage('text').then((res)=>{
// 监听Android侧的回执
console.log('response: ' + res);
}).catch((err: Error) => {
console.log('error: ' + JSON.stringify(err));
});
2.Android侧接收来自ArkUI侧的数据。
// xxx.java
// 创建平台桥接实例(将在since 13废弃,推荐使用新构造方法)
public Bridge(Context context, String name, int id) {
super(context, name, id);
setMessageListener(this);
}
// 创建平台桥接实例(新)
public Bridge(Context context, String name, BridgeManager bridgeManager) {
super(context, name, bridgeManager);
setMessageListener(this);
}
// 注册回调,监听ArkUI侧的数据传递
@Override
public Object onMessage(Object data) {
// 返回回执给ArkUI侧
return "java onMessage success";
}
Android侧向ArkUI侧传递数据
1.Android侧向ArkUI侧发送数据。
// xxx.java
String[] data = { "message", "from", "android" };
bridge.sendMessage(data);
2.ArkUI侧设置回调,用于接收Android侧发送的数据。
// xxx.ets
private bridgeImpl = bridge.createBridge('Bridge');
this.bridgeImpl.setMessageListener((message) => {
console.log('receive message: ' + message);
// 收到消息后,向Android侧发送回执
return "ArkUI receive message success";
});
3.Android侧注册回调,监听ArkUI侧收到数据后的回执。
// xxx.java
// 创建平台桥接实例(将在since 13废弃,推荐使用新构造方法)
public Bridge(Context context, String name, int id) {
super(context, name, id);
setMessageListener(this);
}
// 创建平台桥接实例(新)
public Bridge(Context context, String name, BridgeManager bridgeManager) {
super(context, name, bridgeManager);
setMessageListener(this);
}
// 注册回调,监听ArkUI侧的回执
@Override
public void onMessageResponse(Object data) {}
00
- 0回答
- 0粉丝
- 0关注
相关话题
- ArkUI-X与Android桥接通信之方法回调
- ArkUI-X添加到现有Android项目中
- 带你玩转ArkUI-X 调用原生 iOS 端代码通信
- 鸿蒙ArkUI-X简介
- [HarmonyOS] 鸿蒙 初识 ArkUI-X
- 鸿蒙跨平台框架来了ArkUI-X
- ArkUI-X跨平台框架接入指南
- 鸿蒙ArkUI-X已更新适配API13啦
- ArkUI-X中Plugin生命周期开发指南
- ArkUI-X 5.0.4 Release:跨平台开发的全新体验
- ArkUI-X 5.0.5 Release (API7)发布:安卓适配全面升级,跨平台能力再突破
- 鸿蒙ArkTS+ArkUI仿微信消息列表页制作
- OpenHarmony:Android XML 到OpenHarmony ArkUI一键转化
- (六六)HarmonyOS Design 的通知与消息设计
- 鸿蒙开发(九):消息列表页面的实现