在Flutter三端分离模式下适配鸿蒙系统时,开发者可能会遇到一些问题。本文总结了环境搭建、Flutter模块创建、引入flutter_boost以及Flutter与鸿蒙的通信经验,帮助开发者顺利进行混合开发。使用flutter_boost可以实现Flutter页面与鸿蒙页面的跳转和数据通信。
本文分析Flutter混合开发框架Flutter Boost与Thrio的架构及源码。官方方案仅支持单个Flutter View,缺乏路由传参、生命周期和路由栈管理,因此需借助第三方框架。Flutter Boost将每个Flutter页面包装为FlutterViewController,通过切换engine的viewController展示页面,路由统一交由Native管理,但频繁创建容器易导致内存泄漏。Thrio区分Native与Flutter页面,连续Flutter页面复用现有容器,内存占用更低,并支持多引擎模式。
本文介绍闲鱼Flutter Boost混合开发框架(1.12.13版)的接入与原理:采用共享引擎模式,由Native容器通过消息驱动Flutter页面容器,实现两者同步。Android端接入包括创建Flutter Module、源码或aar集成、添加依赖与初始化,并演示打开Flutter页面、在Flutter内打开Native页面及嵌入Fragment;源码部分解析页面注册、MethodChannel通信和openPage流程。文末补充iOS端CocoaPods接入与路由实现。
完成下面两步后,将自动完成登录并继续当前操作。