原生项目,需要嵌入Flutter页面。
创建flutter module

使用xcode创建原生工程,和flutter module放到同一目录中
使用cocoapods引入flutter相关依赖,注意flutter_application_path是一个相对路径

- 原生工程加载flutter页面
#import <Flutter/Flutter.h>
FlutterViewController *flutterVC = [[FlutterViewController alloc] init];
[self presentViewController:flutterVC animated:YES completion:nil];
- 原生工程加载指定的flutter页面


以上方法原生工程添加flutter页面,每次打开flutter页面,内存都会暴增,页面会有卡顿现象;所以,每次都初始化新的FlutterViewController并不稳妥,因此我们采用了FlutterEngine



flutter_module配置


Flutter原生通讯
FlutterMethodChannel //调用方法(method invocation) 一次通讯的
以下两种都是持续通讯的!!
FlutterBasicMessageChannel //传递字符&半结构化的信息(struct string等)
FlutterEventChannel //用于数据链(stream)的通讯



网友评论