混合开发
大约 1 分钟
flutter 与 Android 混合开发
在原生项目的上一级,创建flutter模块
flutter create -t module flutter_module
Java代码中调用Flutter Module
flutter.createView
FlutterFragment
Flutter 与 iOS 混合开发
OC代码中调用Flutter代码
- 方式 1:
FlutterViewController - 方式 2:
FlutterEngin混合开发中开启热重载
flutter attach -d <deviceId>
Flutter 与 iOS 混合开发中调用 Dart 代码
- 关闭模拟器正在运行的
App - 在
AndroidStudio中通过图形化工具执行Flutter Attach - 在
Dart代码中打断点 - 在模拟器中启动之前关闭的
App
Flutter 与 Native 通信
# BasicMessageChannel
持续的双向通信,Flutter可以给Native发消息并且接收消息,Native也可以给Flutter发消息并且接收消息
# MethodChannel
Flutter调用Native的方法,比如Flutter调用Native的相机,实现拍照功能
# EventChannel
非持续性的双向通信,例如Flutter中监听Native中手机电量、网络状态的变化
Flutter中消息的传递完全是异步的
Flutter 与 iOS 通信
BasicMessageChannel
# iOS端
sendMessageHandler
接收Flutter端发来的消息
sendMessage
发送消息给Flutter端
# Flutter端
sendMessageHandler
接收Native端发来的消息
Future<T> send
传递数据给Native端,可以通过Future获取到Native端返回的结果
MethodChannel
# iOS端
setMethodCallHandler
接收处理Flutter传递过来的函数
# Flutter端
Future<T> invokeMethod
Flutter调用Native的方法
EventChannel
# iOS端
setStreamHandler
# Flutter端
Stream<dynamic> receiveBroadcastStream([dynamic arguments])
dynamic arguments 监听事件时向Native传递的数据
