EventChannel 原生向Flutter传递数据

目的:原生页面主动向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) {

            }
        });

猜你喜欢

转载自www.cnblogs.com/suiyilaile/p/11039563.html