目录
介绍
一、混合开发
Flutter项目调用原生的某些功能
原生项目里面包含Flutter模块
FlutterViewController 创建再销毁之后会有8M的内存泄露
所以Flutter与原生页面之前不适合来回切换,FlutterViewController应该常驻内存
让flutter给原生传递数据,原生应该提供一个方法让flutter来调用,通过方法的参数把数据传过来
原生调用flutter也是同样的道理
Flutter调用原生
// flutter 侧代码
MethodChannel _methodChannel = MethodChannel('mine_page');
_methodChannel.invokeMapMethod('picture', {"param1":"hehe","param2":10});
//iOS侧代码
FlutterViewController *vc = (FlutterViewController*)self.window.rootViewController;
self.methodChannel = [FlutterMethodChannel methodChannelWithName:@"mine_page" binaryMessenger:vc];
[self.methodChannel setMethodCallHandler:^(FlutterMethodCall * _Nonnull call, FlutterResult _Nonnull result) {
if ([call.method isEqualToString:@"picture"]) {
//如果有返回值,通过result将返回值传递会flutter
result(xxx)
}
}];
flutter application
Flutter应用程序是一个完整的移动应用程序,使用Flutter框架进行开发。它包括了从UI布局到业务逻辑的一切,是最终用户可以下载和使用的产品
开发完整的移动应用程序,可以运行在iOS和Android设备上
包含主函数、应用入口、各种页面、路由、状态管理等
flutter module
Flutter模块是一种可以嵌入到现有的Android或iOS应用中的Flutter代码
flutter package
Flutter包是一组共享的Dart代码库,可以被Flutter应用或其他包使用。它主要用于逻辑和UI组件的复用。
flutter plugin
Flutter插件是一个包含Dart代码和平台特定代码(如Java、Kotlin、Objective-C、Swift)的包。它允许Flutter应用访问平台(iOS和Android)提供的原生功能。
行者常至,为者常成!