发现问题:
发现
-> 目前使用flutter 开发 大部分应该是混合工程,一般会把 flutter 打包成为 aar,native 依赖使用,通过路由进行原生启动flutter 页面.
问题
-> flutter 端这边注册 register(‘main/login’,xxxMoudule()), 打成 aar,
原生这边依赖 启动 flutter 页面 navigator.push(‘main/login’). 这样的情况写起来也麻烦,也要不断确认 增加了bug的风险.
解决
-> 通过 flutter 这边 routerCofig 类似配置文件生成 ios/android 这样的代码。
实现方案:
- 新建一flutter_plugin(xxxxPlugin) 并且依赖于 将要打为aar项目。
- 定义 能够执行 flutter pub run xxx 项目
- 阅读 https://dart.dev/tools/dart-run 弄清楚 如何通过命令启动 main()
- 通过 ast 解析 routerConfig 文件字段
- 通过主项目.dart/package_config.json 得到 xxxxPlugin 插件的存放位置
- 把解析到字段 放入到模板代码 合成文件 放入到 xxxxPlugin ios/android目录下
- 打包 aar (项目已经支持 远程依赖和本地依赖)
效果: