unify_uni_bus 0.0.1 copy "unify_uni_bus: ^0.0.1" to clipboard
unify_uni_bus: ^0.0.1 copied to clipboard

UniBus is a Flutter event bus that enables seamless cross-platform communication between Flutter and Android, allowing event registration and dispatch from either side with a unified API.

UnifyUniBus #

UniBus 是一个 Flutter 事件总线,特色在于彻底打通了 Flutter 与 Android 的双端壁垒,实现了真正的混合 EventBus 机制 - 在任意一端注册监听,都能接收来自两端的事件,一套代码打通全平台通信。让混合开发告别繁琐的平台通道代码 🚀

特性 #

  • 双向事件监听:在 Flutter 或 Android 的任意一方注册事件监听器
  • 双向事件发送:从 Flutter 或 Android 的任意一方发送事件,两端的监听器都能接收到
  • 简单易用的 API:提供直观的接口,使跨平台事件通信变得简单
  • 多引擎支持:支持在多 Flutter 引擎环境下工作(目前部分支持)

安装 #

在 pubspec.yaml 中添加依赖: #

dependencies:
  unify_uni_bus: ^latest_version

注意:目前还在开发中,请通过 git 以来方式引入:

dependencies:
  unify_uni_bus:
    git:
      url: https://github.com/didi/Unify.git
      ref: master
      path: packages/unify_uni_bus

然后运行:

flutter pub get

使用方法 #

在 Flutter 中使用 #

1. 导入包

import 'package:unify_uni_bus/unify_uni_bus.dart';

2. 获取 UniBus 实例

final _uniBus = UniBus.instance;

3. 注册事件监听

// 监听指定事件
final subscription = _uniBus.on('event_name').listen((data) {
  print('收到事件: $data');
});

// 不再需要时取消监听
subscription.cancel();

4. 发送事件

// 发送事件到 Flutter 和 Android 端
await _uniBus.fire('event_name', {
  'message': 'Hello from Flutter',
  'timestamp': DateTime.now().millisecondsSinceEpoch,
});

在 Android 中使用 #

1. 获取 UniBus 实例

// 获取单例实例
UniBus uniBus = UniBus.getInstance();

2. 注册事件监听

// 定义事件监听器
UniBus.EventListener listener = new UniBus.EventListener() {
    @Override
    public void onEvent(Map<String, Object> data) {
        // 处理收到的事件数据
        String message = (String) data.get("message");
        // TODO: 处理事件
    }
};

// 注册事件监听
uniBus.on("event_name", listener);

// 不再需要时移除监听
uniBus.off("event_name", listener);

3. 发送事件

// 创建事件数据
Map<String, Object> eventData = new HashMap<>();
eventData.put("message", "Hello from Android");
eventData.put("timestamp", System.currentTimeMillis());

// 发送事件到 Android 端和 Flutter 端
uniBus.fire("event_name", eventData);

Special Thanks #

This code is inspired by the dart-event-bus project (https://github.com/marcojakob/dart-event-bus), which is licensed under the MIT License.

We thank the authors of dart-event-bus for their work.

0
likes
140
points
144
downloads

Publisher

unverified uploader

Weekly Downloads

UniBus is a Flutter event bus that enables seamless cross-platform communication between Flutter and Android, allowing event registration and dispatch from either side with a unified API.

Repository (GitHub)
Contributing

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on unify_uni_bus