加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长资讯 > 评论 > 正文

一篇看懂Android与Flutter之间的通信

发布时间:2019-06-26 13:33:07 所属栏目:评论 来源:Android高级架构师
导读:Flutter作为一种跨平台解决方案,经常会作为一个模块嵌入到原生Android与iOS应用中,Flutter与Android原生端的通信必不可少。所以本文就来讲述一下Android如何与flutter进行通信。 1、架构概述 消息通过平台通道在native(host)与flutter(client)之间传递,

笔者对Android端代码做了一个简单的封装,还是很好理解的。下面就来看flutter代码实现。

  1. class _MyHomePageState extends State<MyHomePage> { 
  2.  EventChannel _eventChannelPlugin = EventChannel("EventChannelPlugin"); 
  3.  StreamSubscription _streamSubscription; 
  4.  @override 
  5.  void initState() { 
  6.  _streamSubscription = _eventChannelPlugin 
  7.  //["abc", 123, "你好"]对应着Android端onListen方法的第一个参数,可不传值 
  8.  .receiveBroadcastStream(["abc", 123, "你好"]) 
  9.  .listen(_onToDart, onError: _onToDartError, onDone: _onDone); 
  10.  super.initState(); 
  11.  } 
  12.  @override 
  13.  void dispose() { 
  14.  if (_streamSubscription != null) { 
  15.  _streamSubscription.cancel(); 
  16.  _streamSubscription = null; 
  17.  } 
  18.  super.dispose(); 
  19.  } 
  20.  //native端发送正常数据 
  21.  void _onToDart(message) { 
  22.  print(message); 
  23.  } 
  24.  //当native出错时,发送的数据 
  25.  void _onToDartError(error) { 
  26.  print(error); 
  27.  } 
  28.  //当native发送数据完成时调用的方法,每一次发送完成就会调用 
  29.  void _onDone() { 
  30.  print("消息传递完毕"); 
  31.  } 
  32.  @override 
  33.  Widget build(BuildContext context) {...} 

上面就是通过EventChannel来进行通信的代码实现,调用EventChannelPlugin的send方法就能给flutter发送数据。

3.3、MethodChannel

MethodChannel是一种native与flutter之间互相发送数据的通信方式,顾名思义,通过MethodChannel就能调用native与flutter中相对应的方法,该种方式有返回值。它的使用方式如下。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读