Flutter 原生混合开发

131 阅读1分钟

集成到原生项目

1、创建Flutter 模块
//到自己想创建的目录 多人最好到大项目路径下创建flutter 模块项目 方便项目管理和下面的集成到项目的地址
 flutter create  -t module xxx
2、原项目添加 flutter 模块
//settings.build 导入flutter 模块
setBinding(new Binding([gradle: this]))
//导入flutter 模块的项目地址
evaluate(new File(settingsDir.parentFile, 'flutter_package/ms_flutter_module/.android/include_flutter.groovy'))
//导入flutter 模块名称
include ':ms_flutter_module'
project(':ms_flutter_module').projectDir=new File("../flutter_package/ms_flutter_module")
3、使用

*** 创建Engine 耗时 耗性能 可以使用Engine缓存策略

//提前创建FlutterEngine
//存储提前创建的Engine
//FlutterEngineCache.getInstance().put("111",flutterEngine);
//使用时获取提前创建好的Engine
//FlutterEngine flutterEngineOne = FlutterEngineCache.getInstance().get("flutter_engine_one");

//创建flutterEngine
flutterEngine=new FlutterEngine(this);
flutterEngine.getDartExecutor().executeDartEntrypoint(
        DartExecutor.DartEntrypoint.createDefault()
);

//通知flutterEngine 生命周期 Resumed
flutterEngine.getLifecycleChannel().appIsResumed();

Flutter与android通信

1、BasicMessageChannel
  • 用于传递字符串和半结构化的数据;
1、MessageChannel
  • 用于传递方法调用
1、EventChannel
  • 用于数据流的通信