写点什么

ArkUI-X 与 Android 消息通信

作者:龙儿筝
  • 2025-06-08
    湖北
  • 本文字数:1371 字

    阅读完需:约 4 分钟

平台桥接用于客户端(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侧的数据传递@Overridepublic 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侧的回执@Overridepublic void onMessageResponse(Object data) {}
复制代码


发布于: 刚刚阅读数: 3
用户头像

龙儿筝

关注

还未添加个人签名 2024-10-27 加入

还未添加个人简介

评论

发布
暂无评论
ArkUI-X与Android消息通信_龙儿筝_InfoQ写作社区