Flutter 混合开发 与原生通信-EventChannel
warning:
这篇文章距离上次修改已过198天,其中的内容可能已经有所变动。
在Flutter混合开发中,我们可以使用EventChannel来与原生端进行事件通信。以下是一个简单的示例,展示了如何在Flutter端使用EventChannel来监听来自原生端的事件。
首先,在原生端定义一个事件通道,并在需要时发送事件:
// 在Android原生代码中
// 1. 创建一个事件通道
private static final String EVENT_CHANNEL = "com.example.event_channel";
// 2. 获取事件通道
EventChannel eventChannel = new EventChannel(flutterView, EVENT_CHANNEL);
// 3. 设置事件监听器
eventChannel.setStreamHandler(new EventChannel.StreamHandler() {
@Override
public void onListen(Object arguments, EventChannel.EventSink events) {
// 当Flutter端订阅时,可以在这里发送事件
events.success("Hello from native");
}
@Override
public void onCancel(Object arguments) {
// 当Flutter端取消订阅时调用
}
});
然后,在Flutter端订阅这个事件通道,并处理接收到的事件:
// 在Flutter代码中
// 1. 创建EventChannel实例
const EventChannel eventChannel = EventChannel('com.example.event_channel');
// 2. 订阅事件通道
eventChannel.receiveBroadcastStream().listen((event) {
// 当原生端发送事件时,这里会接收到并处理
print("Event received from native: $event");
}, onError: (error) {
// 处理错误
print("Event error: $error");
});
在这个例子中,原生端定时发送事件,而Flutter端订阅这些事件并打印出来。这种模式适用于需要从原生端向Flutter端周期性发送数据的场景。
评论已关闭