目的:原生頁面主動向Flutter頁面傳遞信息
1 flutter步驟
定義EventChannel
static const EventChannel eventChannel = EventChannel("sample.flutter.io/test_event_channel"); //samples 實際使用可以替換為包名。要跟原生對應即可。
覆寫initState方法,監聽信息傳遞
@override void initState(){ super.initState(); eventChannel.receiveBroadcastStream().listen(_onEnvent,onError: _onError); } //接收activity傳遞來的參數obj void _onEnvent(Object obj){ setState(() { }); } void _onError(Object obj){ }
2 原生頁面
創建EventChannel,通過setSreamHandler里的EventSink向flutter傳遞信息
new EventChannel((FlutterView) flutterView,"Event_Channel").setStreamHandler(new EventChannel.StreamHandler() { @Override public void onListen(Object o, EventChannel.EventSink eventSink) { eventSink.success("hello world !"); } @Override public void onCancel(Object o) { } });