美文网首页
Flutter EventChannel Cookbook

Flutter EventChannel Cookbook

作者: jeremyplus | 来源:发表于2019-06-13 15:32 被阅读0次

Flutter中的EventChannel的使用场景:从Native端向Flutter端发送消息。
下面总结一下具体的使用步骤。

Dart端非常简单只有两步:

1:初始化eventChannel。
static const EventChannel eventChannel = EventChannel('channelName'); 
2: initstate方法里绑定回调函数:
eventChannel.receiveBroadcastStream().listen(_onEvent, onError: _onError);

并实现(_onEvent和_onError)两个绑定的方法:

void _onEvent(Object event) {
    setState(() {
      //do something
    });
  }
void _onError(Object error) {
    setState(() {
      //do something
    });
  }

iOS端步骤略多:

1: 添加协议:
<FlutterStreamHandler>
2: 创建eventchannel:
FlutterEventChannel* channel = [FlutterEventChannel eventChannelWithName:@"channelName" binaryMessenger:controller];
3: 设置channel代理:
[chargingChannel setStreamHandler:self];
4: 定义全局变量,事件发送器
FlutterEventSink _eventSink;
5: 实现代理方法绑定事件发送器:
- (FlutterError*)onListenWithArguments:(id)arguments eventSink:(FlutterEventSink)eventSink {
    _eventSink = eventSink;
    return nil;
}
6: 实现用来取消eventChannel的代理方法:
- (FlutterError*)onCancelWithArguments:(id)arguments {
    _eventSink = nil;
    return nil;
}
7: 在需要发送数据的地方用事件发送器发送消息:
_eventSink(@"message");

相关文章

网友评论

      本文标题:Flutter EventChannel Cookbook

      本文链接:https://www.haomeiwen.com/subject/uedsfctx.html