找回密码
 立即注册
首页 业界区 业界 ArkUI-X与Android消息通信

ArkUI-X与Android消息通信

滤冽 2025-6-9 10:29:46
平台桥接用于客户端(ArkUI)和平台(Android或iOS)之间传递消息,即用于ArkUI与平台双向数据传递、ArkUI侧调用平台的方法、平台调用ArkUI侧的方法。本文主要介绍Android平台与ArkUI交互,ArkUI侧具体用法请参考Bridge API,Android侧参考BridgePlugin。
创建平台桥接

1.在ArkUI侧创建平台桥接。指定名称,该名称应与Android侧平台桥接的名称一致。通过创建的该对象即可调用平台桥接的方法。数据可以发送json格式或二进制格式。
  1. // xxx.ets
  2. // 导入平台桥接模块
  3. import bridge from '@arkui-x.bridge';
  4. // 创建平台桥接实例
  5. const bridgeImpl = bridge.createBridge('Bridge');
  6. // 创建平台桥接实例(二进制格式)
  7. const bridgeImpl = bridge.createBridge('Bridge', BridgeType.BINARY_TYPE);
复制代码
2.在Android侧创建BridgePlugin类。指定名称,该名称应与ArkUI侧平台桥接的名称一致。通过创建的该对象即可调用平台桥接的方法。
  1. // xxx.java
  2. Bridge bridge = new Bridge(this, "Bridge", getBridgeManager());
  3. Bridge bridge = new Bridge(this, "Bridge", getBridgeManager(), BridgePlugin.BridgeType.BINARY_TYPE);
复制代码
ArkUI侧向Android侧传递数据

1.ArkUI侧向Android侧传递数据。
  1. // xxx.ets
  2. private bridgeImpl = bridge.createBridge('Bridge');
  3. this.bridgeImpl.sendMessage('text').then((res)=>{
  4.     // 监听Android侧的回执
  5.     console.log('response: ' + res);
  6. }).catch((err: Error) => {
  7.     console.log('error: ' + JSON.stringify(err));
  8. });
复制代码
2.Android侧接收来自ArkUI侧的数据。
  1. // xxx.java
  2. // 创建平台桥接实例(将在since 13废弃,推荐使用新构造方法)
  3. public Bridge(Context context, String name, int id) {
  4.     super(context, name, id);
  5.     setMessageListener(this);
  6. }
  7. // 创建平台桥接实例(新)
  8. public Bridge(Context context, String name, BridgeManager bridgeManager) {
  9.     super(context, name, bridgeManager);
  10.     setMessageListener(this);
  11. }
  12. // 注册回调,监听ArkUI侧的数据传递
  13. @Override
  14. public Object onMessage(Object data) {
  15.     // 返回回执给ArkUI侧
  16.     return "java onMessage success";
  17. }
复制代码
Android侧向ArkUI侧传递数据

1.Android侧向ArkUI侧发送数据。
  1. // xxx.java
  2. String[] data = { "message", "from", "android" };
  3. bridge.sendMessage(data);
复制代码
2.ArkUI侧设置回调,用于接收Android侧发送的数据。
  1. // xxx.ets
  2. private bridgeImpl = bridge.createBridge('Bridge');
  3. this.bridgeImpl.setMessageListener((message) => {
  4.     console.log('receive message: ' + message);
  5.     // 收到消息后,向Android侧发送回执
  6.     return "ArkUI receive message success";
  7. });
复制代码
3.Android侧注册回调,监听ArkUI侧收到数据后的回执。
  1. // xxx.java
  2. // 创建平台桥接实例(将在since 13废弃,推荐使用新构造方法)
  3. public Bridge(Context context, String name, int id) {
  4.     super(context, name, id);
  5.     setMessageListener(this);
  6. }
  7. // 创建平台桥接实例(新)
  8. public Bridge(Context context, String name, BridgeManager bridgeManager) {
  9.     super(context, name, bridgeManager);
  10.     setMessageListener(this);
  11. }
  12. // 注册回调,监听ArkUI侧的回执
  13. @Override
  14. public void onMessageResponse(Object data) {}
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册