Andorid调用Flutter记录

1.第一步注册

  可以在 实现FlutterPlugin接口在onAttachedToEngine 或者是 registerWith 方法内实现初始化

final EventChannel eventChannel =
        new EventChannel(registrar.messenger(), "flutter_plugin_name");
eventChannel.setStreamHandler(new ImFlutterPlugin(registrar.activity()));

 注意这里的flutter_plugin_name 不要和你MethodChannel 名字一样,否则使用时会出现交互覆盖。

原因是会被覆盖,具体源码可以去看,这里就不粘贴出来了。

new MethodChannel(registrar.messenger(), "不一样的名字")

 

2. 第二步实现监听

private static EventChannel.EventSink eventSink;

eventSink.success(object) //传递给flutter的数据

@Overrid
public void onListen(Object arguments, EventChannel.EventSink events) {
   eventSink = events;
}
@Override
public void onCancel(Object arguments) {
  eventSink = null;
}

3.flutter 中的实现 

static const myEventPlugin = const EventChannel('im_flutter_plugin_event'); // 可以放在插件的dart文件中

// 在ininstate 中初始化

myEventPlugin.receiveBroadcastStream().listen(_onEvent,onError: _onError);

// 方法可自定义

void _onEvent(Object event) {
  print("nEvent: $event");
}
void _onError(Object error){
  print("error : $error");
}

 // 上listen 简单讲解  ondata 返回的数据 onError android 或者是ios 抛出的异常 

onDone 事件完成 == null 时事件正常   cancelOnerror  true 事件中途被取消或者发生意外。

StreamSubscription<T> listen(void onData(T event),
    {Function onError, void onDone(), bool cancelOnError});

4. android 调用发送数据 flutter 接受 

 发送  eventSink.success(Object object ) 

 接受  onEvent(Object event){

  }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值