flutter 路由 生成给 native 使用

600 阅读1分钟

发现问题:

发现

-> 目前使用flutter 开发 大部分应该是混合工程,一般会把 flutter 打包成为 aar,native 依赖使用,通过路由进行原生启动flutter 页面.

问题

-> flutter 端这边注册 register('main/login',xxxMoudule()), 打成 aar, 原生这边依赖 启动 flutter 页面 navigator.push('main/login'). 这样的情况写起来也麻烦,也要不断确认 增加了bug的风险.

解决 -> 通过 flutter 这边 routerCofig 类似配置文件生成 ios/android 这样的代码。

实现方案:

  1. 新建一flutter_plugin(xxxxPlugin) 并且依赖于 将要打为aar项目。
  2. 定义 能够执行 flutter pub run xxx 项目
    1. 阅读 dart.dev/tools/dart-… 弄清楚 如何通过命令启动 main()
    2. 通过 ast 解析 routerConfig 文件字段
    3. 通过主项目.dart/package_config.json 得到 xxxxPlugin 插件的存放位置
    4. 把解析到字段 放入到模板代码 合成文件 放入到 xxxxPlugin ios/android目录下
  3. 打包 aar (项目已经支持 远程依赖和本地依赖)

使用地址: github.com/geekTaolipe…

效果:

dart:

在这里插入图片描述

android

在这里插入图片描述