Flutter与原生双向通信BasicMessageChannel(IOS暂未测试)
Flutter与原生相互通信的3种方式
MethodChannel:实现Flutter与原生(Android,IOS)双向通信
BasicMessageChannel:实现Flutter与原生(Android,IOS) 双向通信
EventChannel:实现原生(Android,iOS)向Flutter发送消息
Demo基础功能实现目标:
实现调用原生方法并进行回调
显示Android手机当前电量
首先在Flutter方面你需要做的是:
创建BasicMessageChannel
创建通信标识 我个人理解为键值 key
//BasicMessageChannel//'com.basic.message.channel/batteryLevel'为通信标识static const _batteryLevel= const BasicMessageChannel( 'com.basic.message.channel/batteryLevel', StandardMessageCodec());String _batteryLevel1 = '电池电量未知';//给原生发送消息方法 Future
‘com.basic.message.channel/batteryLevel’:需要与Android原生方保持一致
StandardMessageCodec:为参数传递的编码方式
接着我们使用AndroidStudio打开android模块代码:
找到MainActivity,路劲位置:android/app/src/main/java/XXXXXX/MainActivity.java
XXXX为您的包名,有的会以XX/XX/XX/XX层层的形式出现 点下去就好了
MainActivity:
public class MainActivity extends FlutterActivity { private BasicMessageChannel
需要注意的是:
private void messageChannelFunction(String key, Object setMessage,String methodName) {}
messageChannelFunction(“com.basic.message.channel/batteryLevel”,getBatteryLevel(),“batteryLevel”);
这个地方的“com.basic.message.channel/batteryLevel”需要与Flutter方保持一致
//方法名标识
String lMethod = (String) arguments.get(“method”);中“method”
需要与Flutter中
{“method”: “test2”, “ontent”: “flutter 中的数据”, “code”: 100} method保持一致
接下来就可以运行看看效果了!
GET√总体思路:
Flutter创建BasicMessageChannel
添加标识(也就是我理解的key),选择编码方式
进行编码发送消息至Android原生
原生按照标识符与相对应Flutter绑定
收到Flutter编码的消息后 带上需要的参数进行回调Flutter
以上只是个人基础理解,如有误导性请联系我删除博客或进行修改
原创不易,希望各位老爷点完赞再走!
转载请注明作者@As.Kai
关注我,一起成长!
@As.Kai
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现
- Android之判断是否有网封装类
- Android(安卓)SDK下载和更新失败的解决方法
- Android线程之消息机制(Handler、MessageQueue、Looper、Thread)
- Android线程间通信的Message机制
- Android(安卓)Studio FFMPEG 入门
- 远程服务使用AIDL通信
随机推荐
-
Android之Audio初探
-
转-Android(安卓)UI学习 - Tab的学习和使
-
数据存储和界面展示一
-
android调用系统功能
-
Android(安卓)4.4 SD卡文件读写变化
-
android设置Activity背景色为透明的2种方
-
android中的帧动画
-
Android开发常用代码片段(一)
-
Android(安卓)UI LinearLayout权限级别与
-
View的xml的属性作用大剖析